mirror of
https://github.com/sergeyyarkov/attiny24a_memory-led-game.git
synced 2026-10-11 10:18:58 +03:00
refactor: effect_1 of leds
This commit is contained in:
parent
ee5d4ed163
commit
3f3c4e41a5
56
firmware.asm
56
firmware.asm
@ -50,40 +50,62 @@ main: ; Start up program
|
||||
rcall init_ports ; Initialize MCU ports
|
||||
|
||||
loop: ; Program loop
|
||||
rcall effect_1
|
||||
rcall effect_1
|
||||
rjmp loop
|
||||
|
||||
effect_1:
|
||||
push r17
|
||||
push r18
|
||||
push r19
|
||||
push r20
|
||||
|
||||
in r20, LED_PORT
|
||||
|
||||
;
|
||||
; Set first led to high
|
||||
ldi r17, 0xf1
|
||||
out LED_PORT, r17
|
||||
rcall delay_100ms
|
||||
rcall delay_50ms
|
||||
|
||||
;
|
||||
; Shift remaining bits
|
||||
ldi r17, 0x01
|
||||
|
||||
;
|
||||
; Loop counter
|
||||
ldi r19, 3
|
||||
|
||||
effect_1_loop:
|
||||
_eff_1_shift_l: ; Shift bits to left loop
|
||||
ldi r18, 0xf0
|
||||
lsl r17
|
||||
add r18, r17
|
||||
out LED_PORT, r18
|
||||
rcall delay_100ms
|
||||
rcall delay_50ms
|
||||
dec r19
|
||||
brne effect_1_loop
|
||||
brne _eff_1_shift_l
|
||||
|
||||
|
||||
;
|
||||
; Set first led to high
|
||||
ldi r17, 0xf8
|
||||
out LED_PORT, r17
|
||||
rcall delay_50ms
|
||||
|
||||
;
|
||||
; Shift remaining bits
|
||||
ldi r17, 0xf8
|
||||
ldi r19, 3
|
||||
_eff_1_shift_r:
|
||||
ldi r18, 0xf0
|
||||
lsr r17
|
||||
sub r18, r17
|
||||
out LED_PORT, r18
|
||||
rcall delay_50ms
|
||||
dec r19
|
||||
brne _eff_1_shift_r
|
||||
|
||||
;
|
||||
; Out saved PORT values
|
||||
out LED_PORT, r20
|
||||
|
||||
pop r17
|
||||
pop r18
|
||||
pop r19
|
||||
pop r20
|
||||
ret
|
||||
|
||||
init_ports: ; Init MCU ports
|
||||
@ -116,17 +138,17 @@ ldi r18, outer_count
|
||||
ldi r18, outer_count
|
||||
ret
|
||||
|
||||
delay_100ms:
|
||||
delay_50ms:
|
||||
push r18
|
||||
push r19
|
||||
|
||||
ldi r18, 130 ; 1c
|
||||
ldi r19, 222 ; 1c
|
||||
_loop_d_100ms:
|
||||
ldi r18, 65 ; 1c
|
||||
ldi r19, 239 ; 1c
|
||||
_loop_d_50ms:
|
||||
dec r19 ; 1c
|
||||
brne _loop_d_100ms ; 2 or 1c = 665c
|
||||
brne _loop_d_50ms ; 2 or 1c = 665c
|
||||
dec r18 ; 1c
|
||||
brne _loop_d_100ms ; 2 or 1c
|
||||
brne _loop_d_50ms ; 2 or 1c
|
||||
nop
|
||||
pop r19
|
||||
pop r18
|
||||
|
||||
22
firmware.hex
22
firmware.hex
@ -1,12 +1,14 @@
|
||||
:020000020000FC
|
||||
:100000000FED0DBF15D001D0FECF1F932F933F935F
|
||||
:1000100011EF1BBB1ED011E033E020EF110F210FB9
|
||||
:100020002BBB17D03A95C9F71F912F913F91089597
|
||||
:100030000FE00ABB02950BBBBA9AC298002708953D
|
||||
:1000400024E683EC99E00197F1F72A95D1F724E6AD
|
||||
:1000500008952F933F9322E83EED3A95F1F72A95C4
|
||||
:10006000E1F700003F912F9108954D656D6F727912
|
||||
:10007000206C65642067616D652E20577269747409
|
||||
:10008000656E2062792053657267657920596172C7
|
||||
:0E0090006B6F762032372E30392E32303231FF
|
||||
:100000000FED0DBF25D001D0FECF1F932F933F934F
|
||||
:100010004F934BB311EF1BBB2CD011E033E020EF1B
|
||||
:10002000110F210F2BBB25D03A95C9F718EF1BBB39
|
||||
:1000300020D018EF33E020EF1695211B2BBB19D0F1
|
||||
:100040003A95C9F74BBB1F912F913F914F9108955E
|
||||
:100050000FE00ABB02950BBBBA9AC298002708951D
|
||||
:1000600024E683EC99E00197F1F72A95D1F724E68D
|
||||
:1000700008952F933F9321E43FEE3A95F1F72A95A7
|
||||
:10008000E1F700003F912F9108954D656D6F7279F2
|
||||
:10009000206C65642067616D652E205772697474E9
|
||||
:1000A000656E2062792053657267657920596172A7
|
||||
:0E00B0006B6F762032372E30392E32303231DF
|
||||
:00000001FF
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user