more work on m644p.

This commit is contained in:
Martin Preuss
2025-09-01 23:21:52 +02:00
parent 246d00a220
commit 9600be78a5

View File

@@ -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<<OCF0A) ; clear pending interrupts