avr: move SK6812_OnPacketReceived to dedicated file.
This commit is contained in:
@@ -83,41 +83,6 @@ SK6812_Fini:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
|
||||||
; @routine SK6812_OnPacketReceived @global
|
|
||||||
;
|
|
||||||
; @clobbers any, -X
|
|
||||||
|
|
||||||
SK6812_OnPacketReceived:
|
|
||||||
adiw xh:xl, 2 ; command
|
|
||||||
ld r16, X
|
|
||||||
sbiw xh:xl, 2
|
|
||||||
cpi r16, CPRO_CMD_VALUE_SET
|
|
||||||
breq SK6812_OnPacketReceived_set
|
|
||||||
clc ; unexpected msg
|
|
||||||
ret
|
|
||||||
SK6812_OnPacketReceived_set:
|
|
||||||
rcall CPRO_ReadValue ; (none)
|
|
||||||
cpi r17, VALUE_ID_LED_RGBW_VALUE
|
|
||||||
breq SK6812_OnPacketReceived_setRGBW
|
|
||||||
cpi r17, VALUE_ID_LED_NUMLEDS
|
|
||||||
breq SK6812_OnPacketReceived_setNumLeds
|
|
||||||
clc
|
|
||||||
ret
|
|
||||||
SK6812_OnPacketReceived_setRGBW:
|
|
||||||
rcall SK6812_SetAllColor ; value is in R18-R21
|
|
||||||
rjmp SK6812_OnPacketReceived_sendAck
|
|
||||||
SK6812_OnPacketReceived_setNumLeds:
|
|
||||||
sts sk6812NumLeds, r18
|
|
||||||
SK6812_OnPacketReceived_sendAck:
|
|
||||||
ldi r16, CPRO_CMD_VALUE_SET_ACK
|
|
||||||
rcall CPRO_SendSetValueResponse
|
|
||||||
sec
|
|
||||||
ret
|
|
||||||
; @end
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; @routine SK6812_SetAllColor @global
|
; @routine SK6812_SetAllColor @global
|
||||||
;
|
;
|
||||||
|
|||||||
51
avr/modules/sk6812/recv.asm
Normal file
51
avr/modules/sk6812/recv.asm
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
; ***************************************************************************
|
||||||
|
; copyright : (C) 2024 by Martin Preuss
|
||||||
|
; email : martin@libchipcard.de
|
||||||
|
;
|
||||||
|
; ***************************************************************************
|
||||||
|
; * This file is part of the project "AqHome". *
|
||||||
|
; * Please see toplevel file COPYING of that project for license details. *
|
||||||
|
; ***************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine SK6812_OnPacketReceived @global
|
||||||
|
;
|
||||||
|
; @clobbers any, -X
|
||||||
|
|
||||||
|
SK6812_OnPacketReceived:
|
||||||
|
adiw xh:xl, 2 ; command
|
||||||
|
ld r16, X
|
||||||
|
sbiw xh:xl, 2
|
||||||
|
cpi r16, NETMSG_CMD_VALUE_SET
|
||||||
|
breq SK6812_OnPacketReceived_set
|
||||||
|
clc ; unexpected msg
|
||||||
|
ret
|
||||||
|
SK6812_OnPacketReceived_set:
|
||||||
|
rcall NETMSG_ValueRead ; (none)
|
||||||
|
cpi r17, VALUE_ID_LED_RGBW_VALUE
|
||||||
|
breq SK6812_OnPacketReceived_setRGBW
|
||||||
|
cpi r17, VALUE_ID_LED_NUMLEDS
|
||||||
|
breq SK6812_OnPacketReceived_setNumLeds
|
||||||
|
clc
|
||||||
|
ret
|
||||||
|
SK6812_OnPacketReceived_setRGBW:
|
||||||
|
rcall SK6812_SetAllColor ; value is in R18-R21 (r16, r17, r23)
|
||||||
|
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
|
||||||
|
sec
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user