104
ATmega64A [DATASHEET]
8160D–AVR–02/2013
The Timer/Counter Register gives direct access, both for read and write operations, to the Timer/Counter unit 8-bit
counter. Writing to the TCNT0 Register blocks (removes) the Compare Match on the following timer clock. Modify-
ing the counter (TCNT0) while the counter is running, introduces a risk of missing a Compare Match between
TCNT0 and the OCR0 Register.
15.11.3
OCR0 – Output Compare Register
The Output Compare Register contains an 8-bit value that is continuously compared with the counter value
(TCNT0). A match can be used to generate an Output Compare interrupt, or to generate a waveform output on the
OC0 pin.
15.11.4
ASSR – Asynchronous Status Register
Bit 3 – AS0: Asynchronous Timer/Counter0
When AS0 is written to zero, Timer/Counter0 is clocked from the I/O clock, clk
I/O. When AS0 is written to one,
Timer/Counter 0 is clocked from a crystal Oscillator connected to the Timer Oscillator 1 (TOSC1) pin. When the
value of AS0 is changed, the contents of TCNT0, OCR0, and TCCR0 might be corrupted.
Bit 2 – TCN0UB: Timer/Counter0 Update Busy
When Timer/Counter0 operates asynchronously and TCNT0 is written, this bit becomes set. When TCNT0 has
been updated from the temporary storage register, this bit is cleared by hardware. A logical zero in this bit indicates
that TCNT0 is ready to be updated with a new value.
Bit 1 – OCR0UB: Output Compare Register0 Update Busy
When Timer/Counter0 operates asynchronously and OCR0 is written, this bit becomes set. When OCR0 has been
updated from the temporary storage register, this bit is cleared by hardware. A logical zero in this bit indicates that
OCR0 is ready to be updated with a new value.
Bit 0 – TCR0UB: Timer/Counter Control Register0 Update Busy
When Timer/Counter0 operates asynchronously and TCCR0 is written, this bit becomes set. When TCCR0 has
been updated from the temporary storage register, this bit is cleared by hardware. A logical zero in this bit indicates
that TCCR0 is ready to be updated with a new value.
If a write is performed to any of the three Timer/Counter0 registers while its update busy flag is set, the updated
value might get corrupted and cause an unintentional interrupt to occur.
The mechanisms for reading TCNT0, OCR0, and TCCR0 are different. When reading TCNT0, the actual timer
value is read. When reading OCR0 or TCCR0, the value in the temporary storage register is read.
15.11.5
TIMSK – Timer/Counter Interrupt Mask Register
Bit
76543210
OCR0[7:0]
OCR0
Read/Write
R/W
Initial Value
00000000
Bit
7
65
43
2
1
0
–
AS0
TCN0UB
OCR0UB
TCR0UB
ASSR
Read/Write
R
R/W
R
Initial Value
0
Bit
7
6
5432
10
OCIE2
TOIE2
TICIE1
OCIE1A
OCIE1B
TOIE1
OCIE0
TOIE0
TIMSK
Read/Write
R/W
Initial Value
0
0000
00