diff --git a/avr/modules/sk6812/main.asm b/avr/modules/sk6812/main.asm index 6797649..4d29c9b 100644 --- a/avr/modules/sk6812/main.asm +++ b/avr/modules/sk6812/main.asm @@ -32,6 +32,7 @@ .dseg sk6812DataBegin: + sk6812State: .byte 1 ; 0=off, other values: on sk6812NumLeds: .byte 1 sk6812Pattern: .byte 5*SK6812_PATTERN_NUM ; 1 byte num leds, 4 bytes colour (RGBW) sk6812RGBW: .byte 4 ; current RGBW value @@ -282,6 +283,7 @@ sk6812SetState: lds r21, sk6812RGBW+3 rcall sk6812SetAllColor ; (r16, r17, r23, r24, r25) ldi r18, 1 + sts sk6812State, r18 rjmp sk6812ReportState sk6812SetState_off: clr r18 @@ -290,6 +292,7 @@ sk6812SetState_off: clr r21 rcall sk6812SetAllColor ; (r16, r17, r23, r24, r25) ldi r18, 0 + sts sk6812State, r18 rjmp sk6812ReportState ; (R16, R17, R18, R19, R20, R21, R22, R23, R24, R25, X) ; @end @@ -308,7 +311,7 @@ sk6812SetState_off: sk6812SendPattern: sk6812SendPattern_loop1: ld r23, X+ ; num leds - tst r23 + tst r23 brne sk6812SendPattern_readandset ret ; no leds, done sk6812SendPattern_readandset: