From 6f858e390909581348189467e5eafce180123e52 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Mon, 4 Nov 2024 23:28:55 +0100 Subject: [PATCH] avr: use REED_OnPacketReceived and MotionLight_OnPacketReceived. --- avr/devices/n14/n14_main.asm | 66 ++++++------------------------------ avr/devices/n15/n15_main.asm | 65 ++++++++++++----------------------- 2 files changed, 31 insertions(+), 100 deletions(-) diff --git a/avr/devices/n14/n14_main.asm b/avr/devices/n14/n14_main.asm index 2173120..169d348 100644 --- a/avr/devices/n14/n14_main.asm +++ b/avr/devices/n14/n14_main.asm @@ -309,71 +309,25 @@ onPacketReceived: brcs onPacketReceived_end #endif +#ifdef MODULES_SK6812 + rcall SK6812_OnPacketReceived + brcs onPacketReceived_end +#endif + +#ifdef MODULES_REED + rcall REED_OnPacketReceived + brcs onPacketReceived_end +#endif + #ifdef MODULES_COM rcall CPRO_OnPacketReceived brcs onPacketReceived_end #endif - cpi r16, CPRO_CMD_VALUE_SET clc - brne onPacketReceived_end - rjmp onSetValueReceived onPacketReceived_end: ret ; @end -onSetValueReceived: - adiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUEID - ld r16, X - sbiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUEID - -#ifdef MODULES_SK6812 - cpi r16, VALUE_ID_LED_RGBW_VALUE - brne onSetValueReceived_l1 - rjmp onSetRgbwValue -onSetValueReceived_l1: - cpi r16, VALUE_ID_LED_NUMLEDS - brne onSetValueReceived_l2 - rjmp onSetNumLeds -#endif -onSetValueReceived_l2: - ldi r16, CPRO_CMD_VALUE_SET_NACK - rcall CPRO_SendSetValueResponse - clc -onSetValueReceived_end: - ret - - -#ifdef MODULES_SK6812 -onSetRgbwValue: - ; get new value - adiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUE - ld r18, X+ ; R - ld r19, X+ ; G - ld r20, X+ ; B - ld r21, X+ ; W - sbiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUE+4 - rcall SK6812_SetAllColor - ; send ACK - ldi r16, CPRO_CMD_VALUE_SET_ACK - rcall CPRO_SendSetValueResponse - sec - ret - -onSetNumLeds: - ; get new value - adiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUE - ld r16, X ; number of leds - sbiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUE - sts sk6812NumLeds, r16 - ; send ACK - ldi r16, CPRO_CMD_VALUE_SET_ACK - rcall CPRO_SendSetValueResponse - sec - ret -#endif - - - diff --git a/avr/devices/n15/n15_main.asm b/avr/devices/n15/n15_main.asm index 7a70382..f27a720 100644 --- a/avr/devices/n15/n15_main.asm +++ b/avr/devices/n15/n15_main.asm @@ -434,52 +434,29 @@ onEvery100ms: ; @clobbers all onPacketReceived: - ; get msg code - adiw xh:xl, COM2_MSG_OFFS_CMD - ld r16, x - sbiw xh:xl, COM2_MSG_OFFS_CMD +#ifdef MODULES_MOTION_LIGHT + rcall MotionLight_OnPacketReceived + brcs onPacketReceived_end +#endif - cpi r16, CPRO_CMD_VALUE_SET - brne onPacketReceived_l1 - ; msg code is CPRO_CMD_VALUE_SET - rjmp onSetValueReceived +#ifdef MODULES_SK6812 + rcall SK6812_OnPacketReceived + brcs onPacketReceived_end +#endif -onPacketReceived_l1: - rjmp CPRO_OnPacketReceived +#ifdef MODULES_REED + rcall REED_OnPacketReceived + brcs onPacketReceived_end +#endif + +#ifdef MODULES_COM + rcall CPRO_OnPacketReceived + brcs onPacketReceived_end +#endif + + clc +onPacketReceived_end: + ret ; @end - -onSetValueReceived: - adiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUEID - ld r16, X - sbiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUEID - cpi r16, VALUE_ID_REED_CONF - brne onSetValueReceived_l1 -#ifdef MODULES_REED - rjmp onSetReedConf -#else - ret -#endif -onSetValueReceived_l1: - clc - ret - - -#ifdef MODULES_REED -onSetReedConf: - ; get new value - adiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUE - ld r16, X - sbiw xh:xl, CPRO_PACKET_VALUE_OFFS_VALUE - ; set config - rcall REED_SetConfig - ; send ACK - ldi r16, CPRO_CMD_VALUE_SET_ACK - rcall CPRO_SendSetValueResponse - sec - ret -#endif - - -