Logo

Timer 0 (8 Bit): TC0

Timer Counter Control Register A: TCCR0A

Bit Nr. 7 6 5 4 3 2 1 0
TCCR0A (0x44) COM0A1 COM0A0 COM0B1 COM0B0 - - WGM01 WGM00
Read/Write R/W R/W R/W R/W R R R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Compare Match Output A Mode COM0A1:0

Diese Bits stellen die Funktion des Compare Output Pins OC0A (PD6) ein. Es handelt sich dabei um multifunktionale Register -Bits. Die Funktion ist abhängig davon ob und welcher PWM-Modus gewählt wurde. Außerdem unterscheidet sich die Funktionalität der COM0A und COM0B Register-Bits im PWM-Modus.

COM0A1:0 im Nicht-PWM Modus

COM0A1 COM0A0 Beschreibung
0 0 Der OC0A (PD6) Pin funktioniert als normaler IO-Pin.
0 1 Der OC0A (PD6) Pin toggelt bei einem Compare Match
1 0 Der OC0A (PD6) Pin wird bei einem Compare Match gelöscht
1 1 Der OC0A (PD6) Pin wird bei einem Compare Match gesetzt

COM0A1:0 im Fast-PWM Modus

COM0A1 COM0A0 Beschreibung
0 0 Der OC0A (PD6) Pin funktioniert als normaler IO-Pin.
0 1 Sonderfunktion
1 0 Der OC0A (PD6) Pin wird bei einem Compare Match gelöscht und bei 0x00 gesetzt. Dies entspricht dem nicht-invertierenden PWM-Modus
1 1 Der OC0A (PD6) Pin wird bei einem Compare Match gesetzt und bei 0x00 gelöscht. Dies entspricht dem invertierenden PWM-Modus

Compare Match Output B Mode COM0B1:0

Diese Bits stellen die Funktion des Compare Output Pins OC0B (PD5) ein. Es handelt sich dabei um multifunktionale Register -Bits. Die Funktion ist abhängig davon ob und welcher PWM-Modus gewählt wurde. Außerdem unterscheidet sich die Funktionalität der COM0A und COM0B Register-Bits im PWM-Modus.

COM0B1:0 im Nicht-PWM Modus

COM0B1 COM0B0 Beschreibung
0 0 Der OC0B (PD5) Pin funktioniert als normaler IO-Pin.
0 1 Der OC0B (PD5) Pin toggelt bei einem Compare Match
1 0 Der OC0B (PD5) Pin wird bei einem Compare Match gelöscht
1 1 Der OC0B (PD5) Pin wird bei einem Compare Match gesetzt

COM0B1:0 im Fast-PWM Modus

COM0A1 COM0A0 Beschreibung
0 0 Der OC0B (PD5) Pin funktioniert als normaler IO-Pin.
0 1 Reserviert
1 0 Der OC0B (PD5) Pin wird bei einem Compare Match gelöscht und bei 0x00 gesetzt. Dies entspricht dem nicht-invertierenden PWM-Modus
1 1 Der OC0B (PD5) Pin wird bei einem Compare Match gesetzt und bei 0x00 gelöscht. Dies entspricht dem invertierenden PWM-Modus

Waveform Generation Mode WGM02:0

Diese Bits stellen die Funktion der Waveform Generation für den PinOC0A (PD6) ein. Mögliche Modi sind:

Normal-Modus Zähler-Modus
CTC-Modus Clear Timer on Compare Match: Der Zähler wird bei einem Compare-Match rückgesetzt.
Fast PWM-Modus Asymmetrisches PWM-Signal
Phase Correct PWM-Modus Symmetrisches PWM-Signal
Modus WGM02 WGM01 WGM00 Beschreibung TOP Update von OCRx bei Setzen der TOV Flag bei
0 0 0 0 Normal 0xFF sofort 0xFF
1 0 0 1 Phase Correct PWM 0xFF 0xFF 0x00
2 0 1 0 CTC OCRA sofort 0xFF
3 0 1 1 Fast PWM 0xFF 0x00 0xFF
4 1 0 0 Reserviert - - -
5 1 0 1 Sonderfunktion OCRA 0CRA 0x00
6 1 1 0 Reserviert - - -
7 1 1 1 Sonderfunktion OCRA 0x00 OCRA

Timer Counter Control Register B: TCCR0B

Bit Nr. 7 6 5 4 3 2 1 0
TCCR0B (0x45) FOC0A FOC0B - - WGM02 CS02 CS01 CS00
Read/Write W W R R R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Clock Select Bits CS02:0

Die Clock Select Bits CS02:0 stellen den Takt und die Taktquelle clkT0 für den Zähler TC0 ein.

CS02 CS01 CS00 Beschreibung
0 0 0 clkT0=0 :  Timer steht
0 0 1 clkT0=clkI/O :  Kein Prescaler
0 1 0 clkT0=clkI/O/8 :  Prescaler: 1/8
0 1 1 clkT0=clkI/O/64 :  Prescaler: 1/64
1 0 0 clkT0=clkI/O/256 :  Prescaler: 1/256
1 0 1 clkT0=clkI/O/1024 :  Prescaler: 1/1024
1 1 0 clkT0=T0 :  Externe Taktquelle an Pin T0 (PD4), fallende Flanke
1 1 1 clkT0=T0 :  Externe Taktquelle an Pin T0 (PD4), steigende Flanke

Timer Counter Register: TCNT0

Bit Nr. 7 6 5 4 3 2 1 0
TCNT0 (0x46) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Aus dem TCNT0 Register ergibt sich der aktuelle Zählerstand. Das Register kann gelesen und geschrieben werden. Durch Schreiben eines Werts ins Register kann man den Stand des Zählers während des Programmablaufs ändern.

Output Compare Register A: OCR0A

Bit Nr. 7 6 5 4 3 2 1 0
OCR0A (0x47) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Vergleichsregister A. Im Falle der Gleichheit mit dem aktuellen Zählerstand ergibt sich ein Compare Match.

Output Compare Register B: OCR0B

Bit Nr. 7 6 5 4 3 2 1 0
OCR0B (0x48) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Vergleichsregister B. Im Falle der Gleichheit mit dem aktuellen Zählerstand ergibt sich ein Compare Match.

TC0 Interrupt Mask Register: TIMSK0

Bit Nr. 7 6 5 4 3 2 1 0
TIMSK0 (0x6E) - - - - - OCIEB OCIEA TOIE
Read/Write - - - - - R/W R/W R/W
Initial Value - - - - - 0 0 0

TC0 Output Compare Match B Interrupt Enable: OCIEB

Ist dieses Bit gesetzt, wird bei einem OC Match mit dem OCR0B ein IRQ ausgelöst.

TC0 Output Compare Match A Interrupt Enable: OCIEA

Ist dieses Bit gesetzt, wird bei einem OC Match mit dem OCR0A ein IRQ ausgelöst.

TC0 Overflow Interrupt Enable: TOIE

Ist dieses Bit gesetzt, wird bei einem Timer Overflow ein IRQ ausgelöst.

Timer 1 (16 Bit): TC1

Timer Counter Control Register B: TCCR1B

Bit Nr. 7 6 5 4 3 2 1 0
TCCR1B (0x81) ICNC1 ICES1 - WGM13 WGM12 CS12 CS11 CS10
Read/Write R/W R/W R R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Clock Select Bits CS12:0

Die Clock Select Bits CS12:0 stellen den Takt und die Taktquelle clkT1 für den Zähler TC1 ein.

CS12 CS11 CS10 Beschreibung
0 0 0 clkT1=0 :  Timer steht
0 0 1 clkT1=clkI/O :  Kein Prescaler
0 1 0 clkT1=clkI/O/8 :  Prescaler: 1/8
0 1 1 clkT1=clkI/O/64 :  Prescaler: 1/64
1 0 0 clkT1=clkI/O/256 :  Prescaler: 1/256
1 0 1 clkT1=clkI/O/1024 :  Prescaler: 1/1024
1 1 0 clkT1=T1 :  Externe Taktquelle an Pin T1 (PD5), fallende Flanke
1 1 1 clkT1=T1 :  Externe Taktquelle an Pin T1 (PD5), steigende Flanke

Output Compare Register A (Low Byte): OCR1AL

Bit Nr. 7 6 5 4 3 2 1 0
OCR1AL (0x88) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Low Byte des Vergleichsregisters A des 16 Bit Timers 1. Im Falle der Gleichheit mit dem aktuellen Zählerstand ergibt sich ein Compare Match.

Output Compare Register A (High Byte): OCR1AH

Bit Nr. 7 6 5 4 3 2 1 0
OCR1AH (0x89) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

High Byte des Vergleichsregisters A des 16 Bit Timers 1. Im Falle der Gleichheit mit dem aktuellen Zählerstand ergibt sich ein Compare Match.

Output Compare Register B (Low Byte): OCR1BL

Bit Nr. 7 6 5 4 3 2 1 0
OCR1BL (0x8A) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Low Byte des Vergleichsregisters B des 16 Bit Timers 1. Im Falle der Gleichheit mit dem aktuellen Zählerstand ergibt sich ein Compare Match.

Output Compare Register B (High Byte): OCR1BH

Bit Nr. 7 6 5 4 3 2 1 0
OCR1BH (0x8B) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

High Byte des Vergleichsregisters B des 16 Bit Timers 1. Im Falle der Gleichheit mit dem aktuellen Zählerstand ergibt sich ein Compare Match.

TC1 Interrupt Mask Register: TIMSK1

Bit Nr. 7 6 5 4 3 2 1 0
TIMSK1 (0x6F) - - ICIE - - OCIEB OCIEA TOIE
Read/Write - - R/W - - R/W R/W R/W
Initial Value - - 0 - - 0 0 0

TC1 Output Compare Match B Interrupt Enable: OCIEB

Ist dieses Bit gesetzt, wird bei einem OC Match mit dem OCR1B ein IRQ ausgelöst.

TC1 Output Compare Match A Interrupt Enable: OCIEA

Ist dieses Bit gesetzt, wird bei einem OC Match mit dem OCR1A ein IRQ ausgelöst.

TC0 Overflow Interrupt Enable: TOIE

Ist dieses Bit gesetzt, wird bei einem Timer Overflow ein IRQ ausgelöst.

Timer 2 (8 Bit): TC2

Timer Counter Control Register B: TCCR2B

Bit Nr. 7 6 5 4 3 2 1 0
TCCR2B (0xB1) FOC2A FOC2B - - WGM22 CS22 CS21 CS20
Read/Write R/W R/W - - R/W R/W R/W R/W
Initial Value 0 0 - - 0 0 0 0

Clock Select Bits CS2[2:0]

Die Clock Select Bits CS2[2:0] stellen den Takt clkT2 für den Zähler TC2 ein.

CS22 CS21 CS20 Beschreibung
0 0 0 clkT2=0 :  Timer steht
0 0 1 clkT2=clkI/O :  Kein Prescaler
0 1 0 clkT2=clkI/O/8 :  Prescaler: 1/8
0 1 1 clkT2=clkI/O/32 :  Prescaler: 1/32
1 0 0 clkT2=clkI/O/64 :  Prescaler: 1/64
1 0 1 clkT2=clkI/O/128 :  Prescaler: 1/128
1 1 0 clkT2=clkI/O/256 :  Prescaler: 1/256
1 1 1 clkT2=clkI/O/1024 :  Prescaler: 1/1024

Output Compare Register A: OCR2A

Bit Nr. 7 6 5 4 3 2 1 0
OCR2A (0xB3) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Vergleichsregisters A des Timers 2. Im Falle der Gleichheit mit dem aktuellen Zählerstand ergibt sich ein Compare Match.

Output Compare Register B: OCR2B

Bit Nr. 7 6 5 4 3 2 1 0
OCR2B (0xB4) X X X X X X X X
Read/Write R/W R/W R/W R/W R/W R/W R/W R/W
Initial Value 0 0 0 0 0 0 0 0

Vergleichsregisters B des Timers 2. Im Falle der Gleichheit mit dem aktuellen Zählerstand ergibt sich ein Compare Match.

TC2 Interrupt Mask Register: TIMSK2

Bit Nr. 7 6 5 4 3 2 1 0
TIMSK2 (0x70) - - - - - OCIEB OCIEA TOIE
Read/Write - - - - - R/W R/W R/W
Initial Value - - - - - 0 0 0

TC2 Output Compare Match B Interrupt Enable: OCIEB

Ist dieses Bit gesetzt, wird bei einem OC Match mit dem OCR2B ein IRQ ausgelöst.

TC2 Output Compare Match A Interrupt Enable: OCIEA

Ist dieses Bit gesetzt, wird bei einem OC Match mit dem OCR2A ein IRQ ausgelöst.

TC0 Overflow Interrupt Enable: TOIE

Ist dieses Bit gesetzt, wird bei einem Timer Overflow ein IRQ ausgelöst.