27 lines
1.0 KiB
PHP
27 lines
1.0 KiB
PHP
; Registers:
|
|
; r16: timer0 start and stop operations
|
|
|
|
.MACRO START_BLINK
|
|
ldi r16, (1 << OCF0A) ; Write Output Compare Flag 0 A to 1
|
|
out TIFR, r16 ; Clear Timer0 interrupt flag register
|
|
|
|
clr r16 ; Cleanup register
|
|
out TCNT0, r16 ; Reset Counter to 0
|
|
|
|
ldi r16, (1 << CS02) | (1 << CS00) ; Load prescaler value (00000101 = prescaler 1024)
|
|
out TCCR0B, r16 ; Enable clock source
|
|
|
|
sbi PORTB, PB0 ; Set LED on
|
|
.endm
|
|
|
|
stop_blink:
|
|
cbi PORTB, PB0 ; Set LED off
|
|
|
|
clr r16 ; Cleanup register
|
|
out TCCR0B, r16 ; Stop timer0 by clearing prescaler
|
|
|
|
ldi r16, (1 << OCF0A)
|
|
out TIFR, r16 ; Clear timer0 interrupt flag register
|
|
|
|
reti
|