Files
aqhomecontrol/avr/modules/led_simple/recv.asm

48 lines
1.5 KiB
NASM

; ***************************************************************************
; copyright : (C) 2026 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 LedSimple_OnPacketReceived @global
;
; @clobbers any, -X
LedSimple_OnPacketReceived:
adiw xh:xl, NETMSG_OFFS_CMD ; command
ld r16, X
sbiw xh:xl, NETMSG_OFFS_CMD
cpi r16, NETMSG_CMD_VALUE_SET
breq LedSimple_OnPacketReceived_set
clc ; unexpected msg
ret
LedSimple_OnPacketReceived_set:
rcall NETMSG_ValueRead ; (none)
cpi r17, VALUE_ID_LEDSIMPLE_TIMING
breq LedSimple_OnPacketReceived_setTiming
clc
ret
LedSimple_OnPacketReceived_setTiming:
tst r18
breq LedSimple_OnPacketReceived_setDefaultTiming
ldi r20, 60
rcall LedSimple_SetTiming
rjmp LedSimple_OnPacketReceived_sendAck
LedSimple_OnPacketReceived_setDefaultTiming:
rcall LedSimple_SetDefaultTiming
LedSimple_OnPacketReceived_sendAck:
push xl
push xh
ldi r23, NETMSG_CMD_VALUE_SET_ACK
rcall Main_SendValueResponse
pop xh
pop xl
sec
ret
; @end