diff --git a/avr/devices/all/hw_tn841.asm b/avr/devices/all/hw_tn841.asm index 1804319..8ca90c3 100644 --- a/avr/devices/all/hw_tn841.asm +++ b/avr/devices/all/hw_tn841.asm @@ -110,7 +110,11 @@ systemSetupTimer0: ; setup timer for IRQ every 100ms ldi r16, 78-1 out OCR0A, r16 +#ifdef BASETIMER_T841_FAST + ldi r16, 1 +#else ldi r16, 10 +#endif sts baseTimerModuleReloadValue, r16 sts baseTimerModuleTickCounter, r16 .endif diff --git a/avr/devices/t03/main/main.asm b/avr/devices/t03/main/main.asm index a37e92f..8947efb 100644 --- a/avr/devices/t03/main/main.asm +++ b/avr/devices/t03/main/main.asm @@ -53,6 +53,8 @@ #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_COM @@ -90,6 +92,17 @@ .equ VALUE_ID_LEDSIMPLE_TIMING = 0x88 + +; *************************************************************************** +; data segment + +.dseg + +t03TickCounter: .byte 1 + + + + ; *************************************************************************** ; code segment @@ -148,6 +161,9 @@ firmwareVersion: .db FIRMWARE_VARIANT_TEMP_WINDOW, FIRMWARE_VERSION_MAJOR ; @routine firmwareStart @global firmwareStart: + cli + clr r16 + sts t03TickCounter, r16 rjmp main ; @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 + + diff --git a/avr/modules/basetimer/main.asm b/avr/modules/basetimer/main.asm index 077defc..55e46db 100644 --- a/avr/modules/basetimer/main.asm +++ b/avr/modules/basetimer/main.asm @@ -92,7 +92,11 @@ BaseTimer_Run: BaseTimer_Run_loop: ; for every timer tick push r24 push r25 +.ifdef BASETIMER_PRIVATE_TICK_FN + rcall privateTimerTick +.else rcall onSystemTimerTick +.endif pop r25 pop r24 sbiw r25:r24, 1