English
Language : 

ATTINY40_14 Datasheet, PDF (86/204 Pages) ATMEL Corporation – 8-bit Atmel tinyAVR Microcontroller
The following code examples show how to do an atomic read of the TCNT1 register contents. Reading any of the
OCR1 register can be done by using the same principle.
Assembly Code Example
TIM1_ReadTCNT1:
; Save global interrupt flag
in r18,SREG
; Disable interrupts
cli
; Read TCNT1 into r17:r16
in r16,TCNT1L
in r17,TCNT1H
; Restore global interrupt flag
out SREG,r18
ret
C Code Example
unsigned int TIM1_ReadTCNT1( void )
{
unsigned char sreg;
unsigned int i;
/* Save global interrupt flag */
sreg = SREG;
/* Disable interrupts */
_CLI();
/* Read TCNT1 into i */
i = TCNT1L;
i |= ((unsigned int)TCNT1H << 8);
/* Restore global interrupt flag */
SREG = sreg;
return i;
}
Note: See “Code Examples” on page 5.
The assembly code example returns the TCNT1H/L value in the r17:r16 register pair.
ATtiny40 [DATASHEET]
86
8263B–AVR–01/2013