The TIMER/COUNTER CONTROL REGISTER (TCCR0)

7

6

5

4

3

2

1

0

R

R

R

R

R

CS02

CS01

CS00

 

Das TCCR0 dient zur Bestimmung des TimerClocks (Clock 0), welcher sich mit einem  Prescaler  einstellen lässt.  Der Clock 0 wird durch Teilung aus dem EnginClock von bspw. 4 MHz abgeleitet. 
Ohne Teiler arbeitet  der Timer/Counter mit  vollem  EngineClock, dh. der Timerwert wird nach jeweils 250 ns (bei 4 MHz) um ein In- krement erhöht. Bis zur Auslösung des Timer-Interrupts vergehen somit 64 m s.

R reservierte Bits 3,4,5,6,7: werden immer als zero gelesen (READ)

CS00 Clock Select 0

CS01 Clock Select 1

CS02 Clock Select 2

Mittels nachfolgender Truetable kann der entsprechende Teiler eingestellt werden.

 

CS02 CS01 CS00 Description Timerwert

0

0

0

Timer/Counter0 is stopped xxxxxxxxx

0

0

1

EngineClock 64 m s

0

1

0

CK/8 512 m s

0

1

1

CK/64 4096 m s

1

0

0

CK/256 16.384 ms

1

0

1

CK/1024 65.536 ms

1

1

0

External Pin T0, falling edge  

1

1

1

External Pin T0, rising edge  

 

The TIMER/COUNTER 0 (TCNT0)

7

6

5

4

3

2

1

0

MSB

R/W

R/W

R/W

R/W

R/W

R/W

LSB

 

Der Timer/Counter0 arbeitet als 8-Bit-Up-Counter mit READ/- WRITE Zugriff.

 

The TIMER/COUNTER INTERRUPT FLAG REGISTER (TIFR)

7

6

5

4

3

2

1

0

R

R

R

R

R

R

TOV0

R

 

Das TIFR dient zur Registrierung eines Timer/Counter-Overflows von Timer T0.

R reservierte Bits 2,3,4,5,6,7: werden immer als zero gelesen (READ).

TOV0 bei einem Timer/Counter Überlauf (Zählerwert > 255) wird das TOV0 gesetzt [1]

Bei Ausführung des korrespondierenden Interrupt-Vektors wird das TOV0-Bit wieder gelöscht.

Der InterruptHandler (Interrupt Service Routine) wird ausgeführt, wenn:

SREG: I[1]> (&) TIMSK: TOIE0[1] (&) TIFR: TOV0[1]>

 

The TIMER/COUNTER INTERRUPT MASK REGISTER (TIMSK)

7

6

5

4

3

2

1

0

R

R

R

R

R

R

TOIE0

R

 

Das TIMSK wird für die Freischaltung des Timer/Counter-Interrupts von Timer T0 verwendet.

R reservierte Bits 2,3,4,5,6,7: werden immer als zero gelesen (READ).

TOIE Timer/Counter Overflow Interrupt Enable:
um bei einem Timer/Counter Überlauf (Zählerwert > 255) den entsprechenden Interrupt freizuschalten, gilt:

T0_Interrupt_Enable = TIMSK: TOIE [1] (&) SREG: I [1]