Timer 0 (8 Bit): TC0
Timer Counter Control Register A: TCCR0A
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 CS0 2: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 CS1 2: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.
|