diff --git a/avr/devices/n00/n00_defs.asm b/avr/devices/n00/n00_defs.asm index 153ebf5..4c6b549 100644 --- a/avr/devices/n00/n00_defs.asm +++ b/avr/devices/n00/n00_defs.asm @@ -120,4 +120,15 @@ +; --------------------------------------------------------------------------- +; 1-Wire Master +; + +.equ OWI_DDR = DDRB +.equ OWI_PORTOUT = PORTB +.equ OWI_PORTIN = PINB +.equ OWI_PINNUM = PORTB2 + + + diff --git a/avr/devices/n06/n06_defs.asm b/avr/devices/n06/n06_defs.asm index 153ebf5..4c6b549 100644 --- a/avr/devices/n06/n06_defs.asm +++ b/avr/devices/n06/n06_defs.asm @@ -120,4 +120,15 @@ +; --------------------------------------------------------------------------- +; 1-Wire Master +; + +.equ OWI_DDR = DDRB +.equ OWI_PORTOUT = PORTB +.equ OWI_PORTIN = PINB +.equ OWI_PINNUM = PORTB2 + + + diff --git a/avr/devices/n06/n06_main.asm b/avr/devices/n06/n06_main.asm index 0a2fa81..5a942bf 100644 --- a/avr/devices/n06/n06_main.asm +++ b/avr/devices/n06/n06_main.asm @@ -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 diff --git a/avr/devices/n11/n11_main.asm b/avr/devices/n11/n11_main.asm index b72432a..384dfc7 100644 --- a/avr/devices/n11/n11_main.asm +++ b/avr/devices/n11/n11_main.asm @@ -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 diff --git a/avr/devices/n12/n12_defs.asm b/avr/devices/n12/n12_defs.asm index da8eb4e..0446294 100644 --- a/avr/devices/n12/n12_defs.asm +++ b/avr/devices/n12/n12_defs.asm @@ -138,3 +138,14 @@ +; --------------------------------------------------------------------------- +; 1-Wire Master +; + +.equ OWI_DDR = DDRB +.equ OWI_PORTOUT = PORTB +.equ OWI_PORTIN = PINB +.equ OWI_PINNUM = PORTB2 + + + diff --git a/avr/devices/n12/n12_main.asm b/avr/devices/n12/n12_main.asm index 0c32e7b..2c33043 100644 --- a/avr/devices/n12/n12_main.asm +++ b/avr/devices/n12/n12_main.asm @@ -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 diff --git a/avr/modules/si7021/main.asm b/avr/modules/si7021/main.asm index 8a614ae..13b91b3 100644 --- a/avr/modules/si7021/main.asm +++ b/avr/modules/si7021/main.asm @@ -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