Fix instructions for better compat for callback from main

This commit is contained in:
2025-12-25 22:58:27 +01:00
parent 129fd24253
commit 90b498dd94
2 changed files with 13 additions and 12 deletions
+3 -3
View File
@@ -37,9 +37,9 @@ loop:
;rcall midi_send ; Send MIDI ping ;rcall midi_send ; Send MIDI ping
rcall blink_led ; if midi clock then also do: rcall start_blink
in r16, TIFR0 ; Check timer0 status in r16, TIFR0 ; Read Interrupt Flag Register
sbrc r16, OCF0A ; Skip stop_blink if clear sbrs r16, OCF0A ; If timer status OCF0A=1 skip jump
rcall stop_blink rcall stop_blink
+10 -9
View File
@@ -1,26 +1,27 @@
#define __SFR_OFFSET 0 #define __SFR_OFFSET 0
#include <avr/io.h> #include <avr/io.h>
blink_led: start_blink:
clr r16 ; Clear register
out TCNT0, r16 ; Reset Counter to 0
sbi PORTB, PB0 ; Set LED on sbi PORTB, PB0 ; Set LED on
ldi r16, (1<<OCF0A) ldi r16, (1 << OCF0A) ; Clear timer status flag
out TIFR0, r16 ; Clear timer0 status out TIFR0, r16 ; Clear timer0 status
clr r16 ; Clear register
out TCNT0, r16 ; Reset Counter to 0
ldi r16, (1 << CS02) | (1 << CS00) ; Load prescaler value (00000101 = prescaler 1024) ldi r16, (1 << CS02) | (1 << CS00) ; Load prescaler value (00000101 = prescaler 1024)
out TCCR0B, r16 ; Enable clock source out TCCR0B, r16 ; Enable clock source
ret ret
blink_delay: stop_blink:
in r16, TIFR0 ; Read Interrupt Flag Register cbi PORTB, PB0 ; Set LED off
sbrs r16, OCF0A ; If OCF0A = 1 skip jump
rjmp wait_loop ; Else loopback
clr r16 ; Cleanup register clr r16 ; Cleanup register
out TCCR0B, r16 ; Stop timer0 by clearing prescaler out TCCR0B, r16 ; Stop timer0 by clearing prescaler
cbi PORTB, PB0 ; Set LED off ldi r16, (1 << OCF0A)
out TIFR0, r16 ; Clear timer status flag
ret ret