allow for private tick counter and special timer frequencies.
This commit is contained in:
@@ -110,7 +110,11 @@ systemSetupTimer0: ; setup timer for IRQ every 100ms
|
|||||||
ldi r16, 78-1
|
ldi r16, 78-1
|
||||||
out OCR0A, r16
|
out OCR0A, r16
|
||||||
|
|
||||||
|
#ifdef BASETIMER_T841_FAST
|
||||||
|
ldi r16, 1
|
||||||
|
#else
|
||||||
ldi r16, 10
|
ldi r16, 10
|
||||||
|
#endif
|
||||||
sts baseTimerModuleReloadValue, r16
|
sts baseTimerModuleReloadValue, r16
|
||||||
sts baseTimerModuleTickCounter, r16
|
sts baseTimerModuleTickCounter, r16
|
||||||
.endif
|
.endif
|
||||||
|
|||||||
@@ -53,6 +53,8 @@
|
|||||||
|
|
||||||
|
|
||||||
#define MAIN_WITHOUT_MSG_HANDLING ; we do message handling ourselfes
|
#define MAIN_WITHOUT_MSG_HANDLING ; we do message handling ourselfes
|
||||||
|
#define BASETIMER_PRIVATE_TICK_FN ; we use our own system tick function
|
||||||
|
#define BASETIMER_T841_FAST ; call our tick every 10ms
|
||||||
|
|
||||||
#define MODULES_CLOCK
|
#define MODULES_CLOCK
|
||||||
;#define MODULES_COM
|
;#define MODULES_COM
|
||||||
@@ -90,6 +92,17 @@
|
|||||||
.equ VALUE_ID_LEDSIMPLE_TIMING = 0x88
|
.equ VALUE_ID_LEDSIMPLE_TIMING = 0x88
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
; ***************************************************************************
|
||||||
|
; data segment
|
||||||
|
|
||||||
|
.dseg
|
||||||
|
|
||||||
|
t03TickCounter: .byte 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
; ***************************************************************************
|
; ***************************************************************************
|
||||||
; code segment
|
; code segment
|
||||||
|
|
||||||
@@ -148,6 +161,9 @@ firmwareVersion: .db FIRMWARE_VARIANT_TEMP_WINDOW, FIRMWARE_VERSION_MAJOR
|
|||||||
; @routine firmwareStart @global
|
; @routine firmwareStart @global
|
||||||
|
|
||||||
firmwareStart:
|
firmwareStart:
|
||||||
|
cli
|
||||||
|
clr r16
|
||||||
|
sts t03TickCounter, r16
|
||||||
rjmp main
|
rjmp main
|
||||||
; @end
|
; @end
|
||||||
|
|
||||||
@@ -163,6 +179,22 @@ onSystemStart:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
privateTimerTick:
|
||||||
|
lds r16, t03TickCounter
|
||||||
|
inc r16
|
||||||
|
cpi r16, 10
|
||||||
|
brcs privateTimerTick_store
|
||||||
|
clr r16
|
||||||
|
privateTimerTick_store:
|
||||||
|
sts t03TickCounter, r16
|
||||||
|
cpi r16, 0
|
||||||
|
breq privateTimerTick_runSystemTick
|
||||||
|
; TODO
|
||||||
|
ret
|
||||||
|
privateTimerTick_runSystemTick:
|
||||||
|
rjmp onSystemTimerTick
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,11 @@ BaseTimer_Run:
|
|||||||
BaseTimer_Run_loop: ; for every timer tick
|
BaseTimer_Run_loop: ; for every timer tick
|
||||||
push r24
|
push r24
|
||||||
push r25
|
push r25
|
||||||
|
.ifdef BASETIMER_PRIVATE_TICK_FN
|
||||||
|
rcall privateTimerTick
|
||||||
|
.else
|
||||||
rcall onSystemTimerTick
|
rcall onSystemTimerTick
|
||||||
|
.endif
|
||||||
pop r25
|
pop r25
|
||||||
pop r24
|
pop r24
|
||||||
sbiw r25:r24, 1
|
sbiw r25:r24, 1
|
||||||
|
|||||||
Reference in New Issue
Block a user