; *************************************************************************** ; 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