sk6812 now works again (at least with 1m LEDs).
This commit is contained in:
@@ -33,9 +33,6 @@ sk6812DataEnd:
|
||||
.cseg
|
||||
|
||||
|
||||
SK6812_BEGIN:
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; SK6812_Init
|
||||
@@ -92,7 +89,7 @@ SK6812_Fini:
|
||||
; @param r19 green value
|
||||
; @param r20 blue value
|
||||
; @param r21 white value
|
||||
; @clobbers r23 (r16, r17)
|
||||
; @clobbers r23 (r16, r17, r24, r25)
|
||||
|
||||
SK6812_SetAllColor:
|
||||
push r15
|
||||
@@ -100,7 +97,7 @@ SK6812_SetAllColor:
|
||||
cli
|
||||
lds r23, sk6812NumLeds
|
||||
SK6812_SetAllColor_loop:
|
||||
rcall sk6812SendQuadruple ; (r16, r17)
|
||||
rcall sk6812SendQuadruple ; (r16, r17, r24, r25)
|
||||
dec r23
|
||||
brne SK6812_SetAllColor_loop
|
||||
out SREG, r15
|
||||
@@ -149,7 +146,7 @@ sk6812SendPattern_loop2:
|
||||
; @param r19 green value
|
||||
; @param r20 blue value
|
||||
; @param r21 white value
|
||||
; @clobbers r16 (r17)
|
||||
; @clobbers r16 (r17, r24, r25)
|
||||
|
||||
sk6812SendQuadruple:
|
||||
mov r16, r19 ; G
|
||||
@@ -171,8 +168,6 @@ sk6812SendQuadruple:
|
||||
; @param r16 value
|
||||
; @clobbers r16, r17, r24, r25
|
||||
|
||||
|
||||
|
||||
sk6812SendByte:
|
||||
ldi r17, 8 ; +1
|
||||
ldi r24, (1<<SK6812_PINNUM)
|
||||
@@ -203,7 +198,3 @@ sk6812SendByte_sendOne:
|
||||
|
||||
|
||||
|
||||
SK6812_END:
|
||||
.equ MODULE_SIZE_SK6812 = SK6812_END-SK6812_BEGIN
|
||||
|
||||
|
||||
|
||||
@@ -15,9 +15,9 @@
|
||||
; @clobbers any, -X
|
||||
|
||||
SK6812_OnPacketReceived:
|
||||
adiw xh:xl, 2 ; command
|
||||
adiw xh:xl, NETMSG_OFFS_CMD ; command
|
||||
ld r16, X
|
||||
sbiw xh:xl, 2
|
||||
sbiw xh:xl, NETMSG_OFFS_CMD
|
||||
cpi r16, NETMSG_CMD_VALUE_SET
|
||||
breq SK6812_OnPacketReceived_set
|
||||
clc ; unexpected msg
|
||||
@@ -31,16 +31,20 @@ SK6812_OnPacketReceived_set:
|
||||
clc
|
||||
ret
|
||||
SK6812_OnPacketReceived_setRGBW:
|
||||
rcall SK6812_SetAllColor ; value is in R18-R21 (r16, r17, r23)
|
||||
push r17
|
||||
push r24
|
||||
push r25
|
||||
rcall SK6812_SetAllColor ; value is in R18-R21 (r16, r17, r23, r24, r25)
|
||||
pop r25
|
||||
pop r24
|
||||
pop r17
|
||||
rjmp SK6812_OnPacketReceived_sendAck
|
||||
SK6812_OnPacketReceived_setNumLeds:
|
||||
sts sk6812NumLeds, r18
|
||||
SK6812_OnPacketReceived_sendAck:
|
||||
push xl
|
||||
push xh
|
||||
mov r16, r22 ; src address
|
||||
ldi r23, NETMSG_CMD_VALUE_SET_ACK
|
||||
clr r17
|
||||
rcall Main_SendValueResponse
|
||||
pop xh
|
||||
pop xl
|
||||
|
||||
Reference in New Issue
Block a user