avr: added new version of driver for si7021.
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
<extradist>
|
<extradist>
|
||||||
main.asm
|
main.asm
|
||||||
main2.asm
|
main2.asm
|
||||||
|
send.asm
|
||||||
</extradist>
|
</extradist>
|
||||||
|
|
||||||
</gwbuild>
|
</gwbuild>
|
||||||
|
|||||||
@@ -104,14 +104,14 @@ SI7021_MeasureTemp:
|
|||||||
sbrs r17, SI7021_FLAGS_PRESENT_BIT ; investigate PRESENT BIT
|
sbrs r17, SI7021_FLAGS_PRESENT_BIT ; investigate PRESENT BIT
|
||||||
rjmp SI7021_MeasureTemp_error ; jmp if PRESENT bit clear
|
rjmp SI7021_MeasureTemp_error ; jmp if PRESENT bit clear
|
||||||
push r17
|
push r17
|
||||||
rcall si7021MeasureHumidity
|
rcall si7021MeasureTemp
|
||||||
pop r17
|
pop r17
|
||||||
brcc SI7021_MeasureTemp_error
|
brcc SI7021_MeasureTemp_error
|
||||||
ori r17, SI7021_FLAGS_TEMP_VALID
|
ori r17, SI7021_FLAGS_TEMP_VALID
|
||||||
sts si7021Flags, r17
|
sts si7021Flags, r17
|
||||||
rcall si7021CalcHumidity
|
rcall si7021CalcTemp
|
||||||
sts si7021LastHumidity, r18
|
sts si7021LastTemp, r18
|
||||||
sts si7021LastHumidity+1, r19
|
sts si7021LastTemp+1, r19
|
||||||
SI7021_MeasureTemp_done:
|
SI7021_MeasureTemp_done:
|
||||||
pop r15
|
pop r15
|
||||||
out SREG, r15
|
out SREG, r15
|
||||||
@@ -139,9 +139,9 @@ SI7021_MeasureHumidity:
|
|||||||
brcc SI7021_MeasureHumidity_error
|
brcc SI7021_MeasureHumidity_error
|
||||||
ori r17, SI7021_FLAGS_HUM_VALID
|
ori r17, SI7021_FLAGS_HUM_VALID
|
||||||
sts si7021Flags, r17
|
sts si7021Flags, r17
|
||||||
rcall si7021CalcTemp ; calculate temp*100 from sensor value
|
rcall si7021CalcHumidity ;
|
||||||
sts si7021LastTemp, r18
|
sts si7021LastHumidity, r18
|
||||||
sts si7021LastTemp+1, r19
|
sts si7021LastHumidity+1, r19
|
||||||
SI7021_MeasureHumidity_done:
|
SI7021_MeasureHumidity_done:
|
||||||
pop r15
|
pop r15
|
||||||
out SREG, r15
|
out SREG, r15
|
||||||
|
|||||||
43
avr/modules/si7021/send.asm
Normal file
43
avr/modules/si7021/send.asm
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
; ***************************************************************************
|
||||||
|
; 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. *
|
||||||
|
; ***************************************************************************
|
||||||
|
|
||||||
|
.cseg
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine SI7021_SendTemperature
|
||||||
|
|
||||||
|
SI7021_SendTemperature:
|
||||||
|
ldi r16, SI7021_VALUE_TEMP
|
||||||
|
rcall SI7021_GetValue
|
||||||
|
brcc SI7021_SendTemperature_end
|
||||||
|
ldi r17, VALUE_ID_SI7021_TEMP ; VALUE ID
|
||||||
|
ldi r22, AQHOME_VALUETYPE_TEMP ; VALUE TYPE
|
||||||
|
rcall Main_SendValue
|
||||||
|
SI7021_SendTemperature_end:
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ---------------------------------------------------------------------------
|
||||||
|
; @routine SI7021_SendHumidity
|
||||||
|
|
||||||
|
SI7021_SendHumidity:
|
||||||
|
ldi r16, SI7021_VALUE_HUMIDITY
|
||||||
|
rcall SI7021_GetValue
|
||||||
|
brcc SI7021_SendHumidity_end
|
||||||
|
ldi r17, VALUE_ID_SI7021_HUM ; VALUE ID
|
||||||
|
ldi r22, AQHOME_VALUETYPE_HUMIDITY ; VALUE TYPE
|
||||||
|
rcall Main_SendValue
|
||||||
|
SI7021_SendHumidity_end:
|
||||||
|
ret
|
||||||
|
; @end
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user