Datasheet

21.11.4. ASSR – Asynchronous Status Register
When using the I/O specific commands IN and OUT, the I/O addresses 0x00 - 0x3F must be used. When
addressing I/O Registers as data space using LD and ST instructions, 0x20 must be added to these offset
addresses. The device is a complex microcontroller with more peripheral units than can be supported
within the 64 location reserved in Opcode for the IN and OUT instructions. For the Extended I/O space
from 0x60 in SRAM, only the ST/STS/STD and LD/LDS/LDD instructions can be used.
Name:  ASSR
Offset:  0x30
Reset:  0x00
Property:
 
When addressing I/O Registers as data space the offset address is 0x50
Bit 7 6 5 4 3 2 1 0
AS0 TCN0UB OCR0UB TCR0UB
Access
R/W R R R
Reset 0 0 0 0
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/Counter0 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.
Atmel ATmega64A [DATASHEET]
Atmel-8160E-ATmega64A_Datasheet_Complete-09/2015
211