main.asm: CLI while measuring and preparing packet. Directly call onSystemStart.

This commit is contained in:
Martin Preuss
2023-02-06 21:55:10 +01:00
parent 7e3dfa12fa
commit 4d4bdf3203
2 changed files with 39 additions and 49 deletions

View File

@@ -15,6 +15,9 @@ main:
rcall initModules
sei ; Enable interrupts
rcall onSystemStart
ldi xl, LOW(blinkPattern) ; debug: set blink pattern
ldi xh, HIGH(blinkPattern)
ldi zl, LOW(ledA3Flash)
@@ -245,39 +248,44 @@ printSendStats:
#ifdef MODULES_COM
Main_SendValueMsg:
lds r16, comAddress ; do we have an address assigned?
tst r16
breq sendValueMsg_done ; no, do nothing
; send message for current temp
lds r22, si7021Flags
mov r16, r22
andi r16, SI7021_FLAGS_TEMP_VALID
breq sendValueMsg_checkHum
ldi r16, 0xff ; destination address
ldi r17, VALUE_ID_TEMP1 ; value id
push r22
ldi r22, AQHOME_VALUETYPE_TEMP
lds r18, si7021LastTemp ; value
lds r19, si7021LastTemp+1
ldi r20, 100 ; denominator
clr r21
rcall CPRO_EnqueueValue
pop r22
in r15, SREG
push r15
cli
lds r16, comAddress ; do we have an address assigned?
tst r16
breq sendValueMsg_done ; no, do nothing
; send message for current temp
lds r22, si7021Flags
mov r16, r22
andi r16, SI7021_FLAGS_TEMP_VALID
breq sendValueMsg_checkHum
ldi r16, 0xff ; destination address
ldi r17, VALUE_ID_TEMP1 ; value id
push r22
ldi r22, AQHOME_VALUETYPE_TEMP
lds r18, si7021LastTemp ; value
lds r19, si7021LastTemp+1
ldi r20, 100 ; denominator
clr r21
rcall CPRO_EnqueueValue
pop r22
sendValueMsg_checkHum:
mov r16, r22
andi r16, SI7021_FLAGS_HUM_VALID
breq sendValueMsg_done
ldi r16, 0xff ; destination address
ldi r17, VALUE_ID_HUM1 ; value id
push r22
ldi r22, AQHOME_VALUETYPE_HUMIDITY
lds r18, si7021LastHumidity ; value
lds r19, si7021LastHumidity+1
ldi r20, 1 ; denominator
clr r21
rcall CPRO_EnqueueValue
pop r22
mov r16, r22
andi r16, SI7021_FLAGS_HUM_VALID
breq sendValueMsg_done
ldi r16, 0xff ; destination address
ldi r17, VALUE_ID_HUM1 ; value id
push r22
ldi r22, AQHOME_VALUETYPE_HUMIDITY
lds r18, si7021LastHumidity ; value
lds r19, si7021LastHumidity+1
ldi r20, 1 ; denominator
clr r21
rcall CPRO_EnqueueValue
pop r22
sendValueMsg_done:
pop r15
out SREG, r15
ret
#endif
#endif