avr: improved module SK6812 and app MA_LIGHT.

- RGBW values are now only set by SK6812
- MA_LIGHT can now also take into account a brightness value reported
  by any node to switch on light only after dawn
This commit is contained in:
Martin Preuss
2025-09-22 15:09:45 +02:00
parent 42e477098c
commit 666e7690a6
15 changed files with 354 additions and 78 deletions

View File

@@ -80,7 +80,10 @@
.equ EEPROM_OFFS_MAL_CONF_SRC1_VALUEID = 17 ; 1 byte
.equ EEPROM_OFFS_MAL_CONF_SRC2_ADDR = 18 ; 1 byte
.equ EEPROM_OFFS_MAL_CONF_SRC2_VALUEID = 19 ; 1 byte
.equ EEPROM_OFFS_MAL_CONF_RGBWVALUE = 20 ; 4 bytes
.equ EEPROM_OFFS_MAL_CONF_BSRC_ADDR = 20 ; 1 byte light source addr
.equ EEPROM_OFFS_MAL_CONF_BSRC_VALUEID = 21 ; 1 byte light source value id
.equ EEPROM_OFFS_MAL_CONF_BSRC_VALUE = 22 ; 2 bytes light source trigger value
.equ EEPROM_OFFS_ROUTER_RANGE_BEGIN = 24 ; 1 byte
.equ EEPROM_OFFS_ROUTER_RANGE_END = 25 ; 1 byte

View File

@@ -372,6 +372,8 @@
.include "apps/ma_light/data.asm"
.include "apps/ma_light/main.asm"
.include "apps/ma_light/recv.asm"
;.include "common/eeprom-r.asm"
;.include "common/eeprom-w.asm"
#endif

View File

@@ -14,6 +14,7 @@
<extradist>
defs.asm
eeprom.asm
README
</extradist>

View File

@@ -7,13 +7,15 @@
<values>
<value name="DS18B20_TEMP" id="0x06" type="sensor" dataType="rational" modality="temperature" units="C" denom="16" />
<value name="RGBWSTATE" id="0x81" type="actor" dataType="uint16" />
<value name="NUMLEDS" id="0x82" type="actor" dataType="int" />
<value name="RGBWVALUE" id="0x83" type="actor" dataType="dword" />
<value name="MALRGBWVALUE" id="0x84" type="actor" dataType="dword" />
<value name="MALONTIME" id="0x85" type="actor" dataType="uint16" />
<value name="MALSOURCE1" id="0x86" type="actor" dataType="uint16" />
<value name="MALSOURCE2" id="0x87" type="actor" dataType="uint16" />
<value name="MALSOURCEB" id="0x89" type="actor" dataType="dword" />
<value name="MALVALUEB" id="0x8a" type="actor" dataType="dword" />
<value name="LEDTIMING" id="0x88" type="actor" dataType="uint16" />
</values>

View File

@@ -0,0 +1,13 @@
; ***************************************************************************
; copyright : (C) 2025 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. *
; ***************************************************************************
.equ EEPROM_OFFS_SK6812_RGBW = 26 ; 4 bytes

View File

@@ -24,6 +24,7 @@
.include "version.asm"
.include "../defs.asm"
.include "../eeprom.asm"
;.include "./data.asm"
.include "devices/all/defs.asm"
@@ -77,16 +78,20 @@
.equ VALUE_ID_DS18B20_TEMP = 0x06
;.equ VALUE_ID_REED_CONF = 0x81
.equ VALUE_ID_LED_STATE = 0x81
.equ VALUE_ID_LED_NUMLEDS = 0x82
.equ VALUE_ID_LED_RGBW_VALUE = 0x83
.equ VALUE_ID_MAL_RGBW_VALUE = 0x84
.equ VALUE_ID_MAL_ONTIME = 0x85
.equ VALUE_ID_MAL_SOURCE1 = 0x86
.equ VALUE_ID_MAL_SOURCE2 = 0x87
.equ VALUE_ID_MAL_BSOURCE = 0x89
.equ VALUE_ID_MAL_BVALUE = 0x8a
.equ VALUE_ID_LEDSIMPLE_TIMING = 0x88
; ***************************************************************************
; code segment
@@ -167,12 +172,12 @@ onEveryDay:
onEverySecond:
ret
; debug
ldi r19, 0x00 ; G
ldi r18, 0xff ; R
ldi r20, 0x55 ; B
ldi r21, 0xaa ; W
rcall SK6812_SetAllColor ; r23 (r16, r17)
ret
; ldi r19, 0x00 ; G
; ldi r18, 0xff ; R
; ldi r20, 0x55 ; B
; ldi r21, 0xaa ; W
; rcall SK6812_SetRGBW ; r23 (r16, r17)
; ret

View File

@@ -13,6 +13,7 @@
<extradist>
defs.asm
eeprom.asm
README
</extradist>

View File

@@ -7,13 +7,15 @@
<values>
<value name="DS18B20_TEMP" id="0x06" type="sensor" dataType="rational" modality="temperature" units="C" denom="16" />
<value name="RGBWSTATE" id="0x81" type="actor" dataType="uint16" />
<value name="NUMLEDS" id="0x82" type="actor" dataType="int" />
<value name="RGBWVALUE" id="0x83" type="actor" dataType="dword" />
<value name="MALRGBWVALUE" id="0x84" type="actor" dataType="dword" />
<value name="MALONTIME" id="0x85" type="actor" dataType="uint16" />
<value name="MALSOURCE1" id="0x86" type="actor" dataType="uint16" />
<value name="MALSOURCE2" id="0x87" type="actor" dataType="uint16" />
<value name="MALSOURCEB" id="0x89" type="actor" dataType="dword" />
<value name="MALVALUEB" id="0x8a" type="actor" dataType="dword" />
<value name="LEDTIMING" id="0x88" type="actor" dataType="uint16" />
</values>

View File

@@ -0,0 +1,13 @@
; ***************************************************************************
; copyright : (C) 2025 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. *
; ***************************************************************************
.equ EEPROM_OFFS_SK6812_RGBW = 26 ; 4 bytes

View File

@@ -24,6 +24,7 @@
.include "version.asm"
.include "../defs.asm"
.include "../eeprom.asm"
;.include "./data.asm"
.include "devices/all/defs.asm"
@@ -78,16 +79,20 @@
.equ VALUE_ID_DS18B20_TEMP = 0x06
;.equ VALUE_ID_REED_CONF = 0x81
.equ VALUE_ID_LED_STATE = 0x81
.equ VALUE_ID_LED_NUMLEDS = 0x82
.equ VALUE_ID_LED_RGBW_VALUE = 0x83
.equ VALUE_ID_MAL_RGBW_VALUE = 0x84
.equ VALUE_ID_MAL_ONTIME = 0x85
.equ VALUE_ID_MAL_SOURCE1 = 0x86
.equ VALUE_ID_MAL_SOURCE2 = 0x87
.equ VALUE_ID_MAL_BSOURCE = 0x89
.equ VALUE_ID_MAL_BVALUE = 0x8a
.equ VALUE_ID_LEDSIMPLE_TIMING = 0x88
; ***************************************************************************
; code segment