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 .dw sramTimerWriteStats, writeStats, 0, 100
#endif #endif
#ifdef MODULES_SI7021 #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 sramTimerSI7021SendTemp, sendTemp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
.dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s .dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
#endif #endif

View File

@@ -240,7 +240,7 @@ timerList:
.dw sramTimerWriteStats, writeStats, 0, 100 .dw sramTimerWriteStats, writeStats, 0, 100
#endif #endif
#ifdef MODULES_SI7021 #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 sramTimerSI7021SendTemp, sendSI7021Temp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
.dw sramTimerSI7021SendHumidity, sendSI7021Humidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s .dw sramTimerSI7021SendHumidity, sendSI7021Humidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
#endif #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 .dw sramTimerWriteStats, writeStats, 0, 100
#endif #endif
#ifdef MODULES_SI7021 #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 sramTimerSI7021SendTemp, sendTemp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
.dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s .dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
#endif #endif

View File

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