Hi agreer,
Below is your last version of code that I have added to in order to get it to work
on an Axiom M68DEMO908GB60 board.
I had to add the following that you either didn't have or didn't tell us about.
(1) disable COP
(2) enable ints
(3) set CLKSA rather than CLKSB as I am running in SCM mode and XCLK is disabled in this mode
(4) a reset vector
So let us know what you were doing wrong
Peg
.NOLIST
#include "9S08GB60v1rdp.inc"
.LIST
ORG RamStart
RTIDelayL equ 33
RTIDelayH equ 44
counter rmb 1
ORG RomStart
lda #(mCOPT+mSTOPE+mBKGDPE)
sta SOPT ;disable COP (1)
CLI ;enable ints (2)
mov #0,counter
mov #%00001111,PTFD
mov #%00001111,PTFDD
jsr RTI_init
bra *
RTI_init:
;; setup timer 1 module
mov #(mCLKSA+mPS2+mPS1+mPS0),TPM1SC ;(3)
mov #(mMS1A+mCH1IE),TPM1C1SC
; reset the channel compare value
mov #RTIDelayL,TPM1C1VL
mov #RTIDelayH,TPM1C1VH
sthx TPM1CNTH ; write to counter to clear it
; clear the channel flag
lda TPM1C1SC ; read flag CH1F in TPM1C1SC
bclr CH1F,TPM1C1SC ; to clear flag, write zero to CH1F
rts
RTI_Handler:
; do something here...
inc counter
lda counter
coma
sta PTFD
; reset the channel compare value
; calculate the current compare value + delay value
lda #RTIDelayL
add TPM1C1VL ; a = RTIDelayL + TPM1C1VL
sta TPM1C1VL
lda #RTIDelayH
adc TPM1C1VH ; a = RTIDelayH + TPM1C1VH + c
sta TPM1C1VH
; clear the channel flag
lda TPM1C1SC ; read flag CH1F in TPM1C1SC
bclr CH1F,TPM1C1SC ; to clear flag, write zero to CH1F
rti
ORG $FFF2
DC.W RTI_Handler ; TPMCH1
ORG $FFFE
DC.W ROMStart ;(4)