
106
8183F–AVR–06/12
ATtiny24A/44A/84A
Note:
The assembly code example requires that the r17:r16 register pair contains the value to be writ-
ten to TCNT1.
12.10.1
Reusing the Temporary High Byte Register
If writing to more than one 16-bit register where the high byte is the same for all registers written,
then the high byte only needs to be written once. However, note that the same rule of atomic
operation described previously also applies in this case.
12.11 Register Description
12.11.1
TCCR1A – Timer/Counter1 Control Register A
Bits 7:6 – COM1A[1:0]: Compare Output Mode for Channel A
Bits 5:4 – COM1B[1:0]: Compare Output Mode for Channel B
The COM1A[1:0] and COM1B[1:0] control the Output Compare pins (OC1A and OC1B respec-
tively) behavior. If one or both of the COM1A[1:0] bits are written to one, the OC1A output
overrides the normal port functionality of the I/O pin it is connected to. If one or both of the
COM1B[1:0] bit are written to one, the OC1B output overrides the normal port functionality of the
I/O pin it is connected to. However, note that the Data Direction Register (DDR) bit correspond-
ing to the OC1A or OC1B pin must be set in order to enable the output driver.
When the OC1A or OC1B is connected to the pin, the function of the COM1x[1:0] bits is depen-
dent of the WGM1[3:0] bits setting.
C Code Example
void
TIM16_WriteTCNT
1( unsigned int i )
{
unsigned char
sreg;
unsigned int
i;
/* Save global interrupt flag */
sreg = SREG;
/* Disable interrupts */
_CLI();
/* Set TCNT
1 to i */
TCNT
1 = i;
/* Restore global interrupt flag */
SREG = sreg;
}
Bit
7
6
5
4
3
2
1
0
COM1A1
COM1A0
COM1B1
COM1B0
–
WGM11
WGM10
TCCR1A
Read/Write
R/W
R
R/W
Initial Value
0