From 9600be78a556c0d495954a5154a5f844f9a24749 Mon Sep 17 00:00:00 2001 From: Martin Preuss Date: Mon, 1 Sep 2025 23:21:52 +0200 Subject: [PATCH] more work on m644p. --- avr/devices/all/hw_m644p.asm | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/avr/devices/all/hw_m644p.asm b/avr/devices/all/hw_m644p.asm index ccb7f71..f681530 100644 --- a/avr/devices/all/hw_m644p.asm +++ b/avr/devices/all/hw_m644p.asm @@ -103,13 +103,11 @@ systemSetupTimer0: ; setup timer for IRQ every 100ms ldi r16, 1 sts baseTimerModuleReloadValue, r16 sts baseTimerModuleTickCounter, r16 -.endif -; ; Settings for clock 8Mhz ; use timer0 with OCR0=78 (irq every 9.984 millisecs), baseTimerModuleReloadValue 10 ; -.if clock == 8000000 +.elif clock == 8000000 ; CMP interrupt about every 10ms ldi r16, 78-1 outr OCR0A, r16 @@ -117,6 +115,24 @@ systemSetupTimer0: ; setup timer for IRQ every 100ms ldi r16, 10 sts baseTimerModuleReloadValue, r16 sts baseTimerModuleTickCounter, r16 +.elif clock == 10000000 + ; CMP-A interrupt about every 10ms + ldi r16, 98-1 ; (10,000,000/1024)/10 = 97.65625 + outr OCR0A, r16 + + ldi r16, 10 + sts baseTimerModuleReloadValue, r16 + sts baseTimerModuleTickCounter, r16 +.elif clock == 20000000 + ; CMP-A interrupt about every 5ms + ldi r16, 98-1 + outr OCR0A, r16 + + ldi r16, 20 + sts baseTimerModuleReloadValue, r16 + sts baseTimerModuleTickCounter, r16 +.else + .error "Unhandled clock frequency" .endif ldi r16, (1<