avr: added missing defs.

This commit is contained in:
Martin Preuss
2024-09-12 13:11:50 +02:00
parent 0c819bcd19
commit 892dc65898
7 changed files with 45 additions and 12 deletions

View File

@@ -120,4 +120,15 @@
; ---------------------------------------------------------------------------
; 1-Wire Master
;
.equ OWI_DDR = DDRB
.equ OWI_PORTOUT = PORTB
.equ OWI_PORTIN = PINB
.equ OWI_PINNUM = PORTB2

View File

@@ -120,4 +120,15 @@
; ---------------------------------------------------------------------------
; 1-Wire Master
;
.equ OWI_DDR = DDRB
.equ OWI_PORTOUT = PORTB
.equ OWI_PORTIN = PINB
.equ OWI_PINNUM = PORTB2

View File

@@ -228,7 +228,7 @@ timerList:
.dw sramTimerWriteStats, writeStats, 0, 100
#endif
#ifdef MODULES_SI7021
.dw sramTimerSI7021Measure, SI7021_PeriodicMeasurement, 0, 300 ; every 30s
.dw sramTimerSI7021Measure, SI7021_OnTimer, 0, 300 ; every 30s
.dw sramTimerSI7021SendTemp, sendTemp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
.dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
#endif

View File

@@ -240,7 +240,7 @@ timerList:
.dw sramTimerWriteStats, writeStats, 0, 100
#endif
#ifdef MODULES_SI7021
.dw sramTimerSI7021Measure, SI7021_PeriodicMeasurement, 0, 300 ; every 30s
.dw sramTimerSI7021Measure, SI7021_OnTimer, 0, 300 ; every 30s
.dw sramTimerSI7021SendTemp, sendSI7021Temp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
.dw sramTimerSI7021SendHumidity, sendSI7021Humidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
#endif

View File

@@ -138,3 +138,14 @@
; ---------------------------------------------------------------------------
; 1-Wire Master
;
.equ OWI_DDR = DDRB
.equ OWI_PORTOUT = PORTB
.equ OWI_PORTIN = PINB
.equ OWI_PINNUM = PORTB2

View File

@@ -228,7 +228,7 @@ timerList:
.dw sramTimerWriteStats, writeStats, 0, 100
#endif
#ifdef MODULES_SI7021
.dw sramTimerSI7021Measure, SI7021_PeriodicMeasurement, 0, 300 ; every 30s
.dw sramTimerSI7021Measure, SI7021_OnTimer, 0, 300 ; every 30s
.dw sramTimerSI7021SendTemp, sendTemp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
.dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
#endif

View File

@@ -91,7 +91,7 @@ SI7021_Fini:
; ---------------------------------------------------------------------------
; SI7021_PeriodicMeasurement
; SI7021_OnTimer
;
; Call this routine periodically to take measurements.
; IN:
@@ -100,44 +100,44 @@ SI7021_Fini:
; - CFLAG: set if okay, clear on error
; USED:
SI7021_PeriodicMeasurement:
SI7021_OnTimer:
in r15, SREG
push r15
cli
lds r17, si7021Flags
mov r16, r17
andi r16, SI7021_FLAGS_LASTWASTEMP
brne si7021PeriodicMeasurement_hum
brne SI7021_OnTimer_hum
ori r17, SI7021_FLAGS_LASTWASTEMP
sts si7021Flags, r17
push r17
rcall si7021MeasureTemp
pop r17
brcc si7021PeriodicMeasurement_error
brcc SI7021_OnTimer_error
ori r17, SI7021_FLAGS_TEMP_VALID
sts si7021Flags, r17
rcall si7021CalcTemp ; calculate temp*100 from sensor value
sts si7021LastTemp, r18
sts si7021LastTemp+1, r19
rjmp si7021PeriodicMeasurement_done
si7021PeriodicMeasurement_hum:
rjmp SI7021_OnTimer_done
SI7021_OnTimer_hum:
andi r17, ~SI7021_FLAGS_LASTWASTEMP
sts si7021Flags, r17
push r17
rcall si7021MeasureHumidity
pop r17
brcc si7021PeriodicMeasurement_error
brcc SI7021_OnTimer_error
ori r17, SI7021_FLAGS_HUM_VALID
sts si7021Flags, r17
rcall si7021CalcHumidity
sts si7021LastHumidity, r18
sts si7021LastHumidity+1, r19
si7021PeriodicMeasurement_done:
SI7021_OnTimer_done:
pop r15
out SREG, r15
sec
ret
si7021PeriodicMeasurement_error:
SI7021_OnTimer_error:
pop r15
out SREG, r15
clc