- SF800 Solar Speicher Tutorial         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 18 von 18

Thema: Phasenkorrekte PWM mit Hochbefehlen

  1. #11
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    Anzeige

    Powerstation Test
    das macht man glaub ich nicht mit PWM. Timer auf 20ms setzten und im Interrupt Pulseout....auf 1,5ms. Einfacher als mit PWM.

  2. #12
    Murus
    Gast
    Aaaaaaargh!!!!! Ich WILL es mit PWM machen! Ich weiss selber, dass es tausend andere Wege gibt.... hab ich aber oben schon gesagt!
    Ich krieg einfach die Überleitung von ms zu Takten nicht hin....
    Wie kann ich die PWM einstellen, damit sie mit 1000000Mhz 1.5ms Pulse macht, und das alle 20ms.... Es geht um das Verständnis, nicht um die Methode.

    Herzliche Grüsse
    Mario

  3. #13
    Erfahrener Benutzer Roboter Experte Avatar von Rage_Empire
    Registriert seit
    10.03.2005
    Ort
    Pforzheim
    Beiträge
    710
    1000000Mhz? Wow!!!!!....den AVR will ich auch....is ja besser als intel und amd zusammen

    Es gibt ein Berechnungsprogramm, welches du im Downloadbereich findest, welches dir die Zahlen und Prescaler ausrechnet.

  4. #14
    Murus
    Gast
    lol... Meine natürlich Hz... Wär aber cool gewesen...
    Also das Proggi find ich jetzt partout nich.... Hast du einen Link?
    Danke und Gruss
    Mario

  5. #15
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    1/ f = t

    1/1000000 hz = 0,000001 sec = 0,001 msec

    Code:
    #define SERVO1   OCR1A
    #define SERVO2   OCR1B
    
    // PWM Timmer
    SIGNAL(SIG_OVERFLOW1)
    {
      TCNT1 = 0;
    
      /* configure to set outputs on compare match so we can turn on the
       * pulse in the next statement */
      TCCR1A |= BV(COM1A1)|BV(COM1A0)|BV(COM1B1)|BV(COM1B0);
    
      /* force compare match to set outputs */
      TCCR1A |= BV(FOC1A)|BV(FOC1B);
    
      /* configure to clear outputs on compare match so that the output
       * compare function ends the pulse */
      TCCR1A &= ~(BV(COM1A0)|BV(COM1B0));
    }
    
    void init_servos(void)
    {
      /* Use Timers 1 generate the pulses for 2 R/C servos; each
       * timer can do up to 3 servos. */
        /*
       * configure OC1A for mode 0: normal, top=0xffff prescale=8 (f~=30):
       *
       * WGM33=0, WGM23=0, WGM13=0, WGM03=0, CS32=0, CS31=1, CS30=0 
       */
      DDRD   |= BV(PORTD5) | BV(PORTD4);
      TCCR1A &= ~(BV(WGM11) | BV(WGM10) | BV(COM1A1) | BV(COM1B1));
      TCCR1A |= BV(COM1A0) | BV(COM1B0);
      TCCR1B &= ~(BV(WGM13) | BV(WGM12) | BV(CS12) | BV(CS10));
      TCCR1B |= BV(CS11);
      TCNT1   = 0;
      TIMSK  |= BV(TOIE1);
    
      /* set all Servos to their center positions */
      SERVO1 = SERVO_MID;
      SERVO2 = SERVO_MID;
     }
    so sieht mein PWM Servo code aus bei 16 MHz

    vielleicht hilft es dir
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  6. #16
    Murus
    Gast
    In C... Verstehe leider kein Wort...
    Aber wenigstens das mit der Frequenz und Periode ist jetzt klar...
    Nur: Kriegt man das mit 8Bit PWM und 1000000Hz überhaupt genau hin??

    Herzliche Grüsse
    Mario

  7. #17
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    31.01.2004
    Ort
    36399
    Alter
    50
    Beiträge
    1.562
    8 bit = max 256 = 0,001 msec * 256 = 0,256 msec bis der abläuft.

    man bin heute morgen noch nicht so fit mußda nochmal drüber nach denken.

    warum c ist auch nicht anders als basic alles nur ne sprache

    SIGNAL(SIG_OVERFLOW1)

    wird auf gerufen wenn der timmer ab gelaufen ist.
    der rest ist der init des Timers.

    Neine ich denk das du das PWM nicht mit dem 8bit timer hin bekommst.
    Der ist zu schnell
    P: Meine Tochter (06.11.07) und https://www.carnine.de
    M: Träumen hat nix mit Dummheit zu tun es ist die Möglichkeit neues zu erdenken

  8. #18
    Murus
    Gast
    Ok, dann kann mans so also nur schlecht machen...

    Herzlichen Dank für die Info!!

    Greets
    Mario

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen