Skip to content

Instantly share code, notes, and snippets.

@Matts966
Last active December 21, 2019 09:54
Show Gist options
  • Save Matts966/c20550f7492e4dab38512bd4e4a4926f to your computer and use it in GitHub Desktop.
Save Matts966/c20550f7492e4dab38512bd4e4a4926f to your computer and use it in GitHub Desktop.
Fibonacci led
void setup() {
asm volatile(R"(
ldi r16, 0b00001000
out 0x17, r16
ldi r19, 0
ldi r20, 1
ldi r21, 1
task1:
ldi r16, 0b00001000
out 0x18, r16
rcall delay_short0
ldi r16, 0b00000000
out 0x18, r16
rcall delay_short0
dec r21
brne task1
rcall fib
rcall delay0
rjmp task1
delay0:
ldi r17, 0
delay1:
ldi r18, 0
delay2:
dec r18
brne delay2
dec r17
brne delay1
ret
delay_short0:
ldi r17, 0
delay_short1:
ldi r18, 128
delay_short2:
dec r18
brne delay_short2
dec r17
brne delay_short1
ret
fib:
mov r21, r20
add r20, r19
mov r19, r21
mov r21, r20
ret
)");
}
void loop() {
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment