-
-
TCCR0:
Fast PWM: WGM01=1, WGM00=1
Set OC01 on Compare Match, Clear OC0 at top: COM01=1, COM00=1
Clock(IO)/64(from Prescaler). CS02=0; CS01=1, CS00=1
FOC0: inactive at fast-pwm-mode
Ergibt:
TCCR0 = Bit 6 5 4 3 1 0 = 0x7b;
TIMSK:
Interrupt enable: Output Compare und Overflow Flag, Bits 0 und 1
TIMSK |= 0x03; (| nur wenn andere Timer auch verwendet werden)
TCNT = 0; -> TimerCoutner auf 0 setzen.
OCR0 -> bestimmt Helligkeit.
Anhand des Datenblatts (Abschnitt 8-Bit-Timer-Counter0 with PWM, Figure32. Timing Diagram) zählt der Counter mit dem Prescaler immer hoch. Wenn der Wert in OCR erreicht ist wird der OCR-Interrupt(output compare) ausgelöst, kommt der Zähler oben an wird der TOV-Interrupt (Timer overflow) ausgelöst und der Zähler beginnt wieder bei 0.
Die Perioden des Timers zum Überlauf sind immer gleich lang, die Dauer zwischen Overflow und OCR beträgt somit [t(ges)*256/OCR].
Das sollte genug sein. Noch Fragen?
Alex
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen