avr: timer table is now consulted every 100ms (instead of every second).
This commit is contained in:
@@ -55,7 +55,8 @@
|
|||||||
#define MODULES_TIMER
|
#define MODULES_TIMER
|
||||||
#define MODULES_COM
|
#define MODULES_COM
|
||||||
#define MODULES_COM_WITH_ADDR_PROTO
|
#define MODULES_COM_WITH_ADDR_PROTO
|
||||||
#define MODULES_LED
|
;#define MODULES_LED
|
||||||
|
#define MODULES_LED_SIMPLE
|
||||||
#define MODULES_TWI_MASTER
|
#define MODULES_TWI_MASTER
|
||||||
;#define MODULES_LCD
|
;#define MODULES_LCD
|
||||||
#define MODULES_SI7021
|
#define MODULES_SI7021
|
||||||
@@ -102,11 +103,7 @@
|
|||||||
reti ; OC0B
|
reti ; OC0B
|
||||||
reti ; OVF0
|
reti ; OVF0
|
||||||
reti ; ACI
|
reti ; ACI
|
||||||
#ifdef MODULES_CNY70
|
|
||||||
rjmp cny70Isr ; ADCC
|
|
||||||
#else
|
|
||||||
reti ; ADCC
|
reti ; ADCC
|
||||||
#endif
|
|
||||||
reti ; ERDY
|
reti ; ERDY
|
||||||
reti ; USI_STR
|
reti ; USI_STR
|
||||||
reti ; USI_OVF
|
reti ; USI_OVF
|
||||||
@@ -223,19 +220,19 @@ timerList:
|
|||||||
.dw cproAddresModeTimer, CPRO_Address_OnTimer, 0, 0 ; (no restart)
|
.dw cproAddresModeTimer, CPRO_Address_OnTimer, 0, 0 ; (no restart)
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODULES_STATS
|
#ifdef MODULES_STATS
|
||||||
.dw statsSendTimer, Stats_Timer, TIMER_FLAGS_IF_ADDR, 300 ; every 5m
|
.dw statsSendTimer, Stats_Timer, TIMER_FLAGS_IF_ADDR, 3000 ; every 5m
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODULES_LCD
|
#ifdef MODULES_LCD
|
||||||
.dw sramPeriodicalLcdMark, periodicalLcdMark, 0, 1 ; every sec
|
.dw sramPeriodicalLcdMark, periodicalLcdMark, 0, 10 ; every sec
|
||||||
.dw sramTimerWriteStats, writeStats, 0, 10
|
.dw sramTimerWriteStats, writeStats, 0, 100
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODULES_SI7021
|
#ifdef MODULES_SI7021
|
||||||
.dw sramTimerSI7021Measure, SI7021_PeriodicMeasurement, 0, 30 ; every 30s
|
.dw sramTimerSI7021Measure, SI7021_PeriodicMeasurement, 0, 300 ; every 30s
|
||||||
.dw sramTimerSI7021SendTemp, sendTemp, TIMER_FLAGS_IF_ADDR, 60 ; every 60s
|
.dw sramTimerSI7021SendTemp, sendTemp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
|
||||||
.dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 60 ; every 60s
|
.dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODULES_CNY70
|
#ifdef MODULES_CNY70
|
||||||
.dw sramTimerCny70SendAdc, sendAdc, TIMER_FLAGS_IF_ADDR, 30 ; every 30s
|
.dw sramTimerCny70SendAdc, CNY70_OnTimer, TIMER_FLAGS_IF_ADDR, 50 ; every 5s
|
||||||
#endif
|
#endif
|
||||||
.dw 0 ; end of list
|
.dw 0 ; end of list
|
||||||
|
|
||||||
@@ -293,20 +290,6 @@ sendTemp_okay:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef MODULES_CNY70
|
|
||||||
sendAdc:
|
|
||||||
rcall CNY70_SendAdc
|
|
||||||
brcs sendAdc_okay
|
|
||||||
; set timer to 1s to retry later
|
|
||||||
ldi xl, LOW(sramTimerCny70SendAdc)
|
|
||||||
ldi xh, HIGH(sramTimerCny70SendAdc)
|
|
||||||
rjmp Timer_SetValueTo1s
|
|
||||||
sendAdc_okay:
|
|
||||||
ret
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; Called every 100ms. Add your routine calls here. No arguments, no results.
|
; Called every 100ms. Add your routine calls here. No arguments, no results.
|
||||||
|
|
||||||
@@ -324,10 +307,6 @@ onEvery100ms:
|
|||||||
rcall LedSimple_Every100ms
|
rcall LedSimple_Every100ms
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef MODULES_CNY70
|
|
||||||
rcall CNY70_Every100ms
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MODULES_REED
|
#ifdef MODULES_REED
|
||||||
rcall REED_Every100ms
|
rcall REED_Every100ms
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -91,11 +91,7 @@
|
|||||||
reti ; OC0B
|
reti ; OC0B
|
||||||
reti ; OVF0
|
reti ; OVF0
|
||||||
reti ; ACI
|
reti ; ACI
|
||||||
#ifdef MODULES_CNY70
|
|
||||||
rjmp cny70Isr ; ADCC
|
|
||||||
#else
|
|
||||||
reti ; ADCC
|
reti ; ADCC
|
||||||
#endif
|
|
||||||
reti ; ERDY
|
reti ; ERDY
|
||||||
reti ; USI_STR
|
reti ; USI_STR
|
||||||
reti ; USI_OVF
|
reti ; USI_OVF
|
||||||
@@ -213,19 +209,19 @@ timerList:
|
|||||||
.dw cproAddresModeTimer, CPRO_Address_OnTimer, 0, 0 ; (no restart)
|
.dw cproAddresModeTimer, CPRO_Address_OnTimer, 0, 0 ; (no restart)
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODULES_STATS
|
#ifdef MODULES_STATS
|
||||||
.dw statsSendTimer, Stats_Timer, TIMER_FLAGS_IF_ADDR, 300 ; every 5m
|
.dw statsSendTimer, Stats_Timer, TIMER_FLAGS_IF_ADDR, 3000 ; every 5m
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODULES_LCD
|
#ifdef MODULES_LCD
|
||||||
.dw sramPeriodicalLcdMark, periodicalLcdMark, 0, 1 ; every sec
|
.dw sramPeriodicalLcdMark, periodicalLcdMark, 0, 10 ; every sec
|
||||||
.dw sramTimerWriteStats, writeStats, 0, 10
|
.dw sramTimerWriteStats, writeStats, 0, 100
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODULES_SI7021
|
#ifdef MODULES_SI7021
|
||||||
.dw sramTimerSI7021Measure, SI7021_PeriodicMeasurement, 0, 30 ; every 30s
|
.dw sramTimerSI7021Measure, SI7021_PeriodicMeasurement, 0, 300 ; every 30s
|
||||||
.dw sramTimerSI7021SendTemp, sendTemp, TIMER_FLAGS_IF_ADDR, 60 ; every 60s
|
.dw sramTimerSI7021SendTemp, sendTemp, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
|
||||||
.dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 60 ; every 60s
|
.dw sramTimerSI7021SendHumidity, sendHumidity, TIMER_FLAGS_IF_ADDR, 600 ; every 60s
|
||||||
#endif
|
#endif
|
||||||
#ifdef MODULES_CNY70
|
#ifdef MODULES_CNY70
|
||||||
.dw sramTimerCny70SendAdc, sendAdc, TIMER_FLAGS_IF_ADDR, 30 ; every 30s
|
.dw sramTimerCny70SendAdc, CNY70_OnTimer, TIMER_FLAGS_IF_ADDR, 50 ; every 5s
|
||||||
#endif
|
#endif
|
||||||
.dw 0 ; end of list
|
.dw 0 ; end of list
|
||||||
|
|
||||||
@@ -283,20 +279,6 @@ sendTemp_okay:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef MODULES_CNY70
|
|
||||||
sendAdc:
|
|
||||||
rcall CNY70_SendAdc
|
|
||||||
brcs sendAdc_okay
|
|
||||||
; set timer to 1s to retry later
|
|
||||||
ldi xl, LOW(sramTimerCny70SendAdc)
|
|
||||||
ldi xh, HIGH(sramTimerCny70SendAdc)
|
|
||||||
rjmp Timer_SetValueTo1s
|
|
||||||
sendAdc_okay:
|
|
||||||
ret
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
; ---------------------------------------------------------------------------
|
||||||
; Called every 100ms. Add your routine calls here. No arguments, no results.
|
; Called every 100ms. Add your routine calls here. No arguments, no results.
|
||||||
|
|
||||||
@@ -315,10 +297,6 @@ onEvery100ms:
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
#ifdef MODULES_CNY70
|
|
||||||
rcall CNY70_Every100ms
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef MODULES_REED
|
#ifdef MODULES_REED
|
||||||
rcall REED_Every100ms
|
rcall REED_Every100ms
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -122,6 +122,7 @@ Timer_Run:
|
|||||||
Timer_Run_loop: ; for every occurred 100ms irq
|
Timer_Run_loop: ; for every occurred 100ms irq
|
||||||
push r24
|
push r24
|
||||||
push r25
|
push r25
|
||||||
|
rcall timerRunTimers
|
||||||
rcall onEvery100ms
|
rcall onEvery100ms
|
||||||
pop r25
|
pop r25
|
||||||
pop r24
|
pop r24
|
||||||
@@ -134,11 +135,11 @@ Timer_Run_loop: ; for every occurred 100ms irq
|
|||||||
Timer_Run_SecondElapsed:
|
Timer_Run_SecondElapsed:
|
||||||
clr r16
|
clr r16
|
||||||
sts timerModuleTickCounter, r16
|
sts timerModuleTickCounter, r16
|
||||||
push r24
|
; push r24
|
||||||
push r25
|
; push r25
|
||||||
rcall timerRunTimers
|
; rcall timerRunTimers
|
||||||
pop r25
|
; pop r25
|
||||||
pop r24
|
; pop r24
|
||||||
Timer_Run_loop_end:
|
Timer_Run_loop_end:
|
||||||
sbiw r25:r24, 1
|
sbiw r25:r24, 1
|
||||||
brne Timer_Run_loop
|
brne Timer_Run_loop
|
||||||
@@ -185,7 +186,7 @@ Timer_SetValue:
|
|||||||
Timer_SetValueTo1s:
|
Timer_SetValueTo1s:
|
||||||
push r16
|
push r16
|
||||||
push r17
|
push r17
|
||||||
ldi r16, 1
|
ldi r16, 10
|
||||||
clr r17
|
clr r17
|
||||||
rcall Timer_SetValue
|
rcall Timer_SetValue
|
||||||
pop r17
|
pop r17
|
||||||
|
|||||||
Reference in New Issue
Block a user