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 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.
|