hi:
resetting the main timer should not be done in any application. the code below initializes the timer and below that is an isr
bset tim0_tios,%00010000 ;timer0 ch 4 is output compare
bset tim0_tscr1,%10010000 ;d7 =timer enable,d6.d5 wait and freeze operation,d4 fast flag clear
bset tim0_tie,%00010000 ;ch4 enabled to interrupt bus
bset tim0_tscr2,%00000001 ;prescale to clock over 2 or 10 mhz 100 ns
ldd tim0_tcnt ;fetch the current counter
addd #1500 ;add the timer period
std tim0_tc4 ;schedule the next interrupt/clear the flag
cli ;interrupt mask cleared
svc_tim0_ch04 equ * ;timer0 channel 4
ldd tim0_tcnt ;fetch the current timer count
addd #10000 ;add the timer period for 1 ms
std tim0_tc4 ;update the compare register/clear the flag
insert your code here
rti
this will cause the interrupt to occur on a timed basis. as you see, you add the current main timer to a variable to schedule the next interrupt. if you only want a "one-shot" simply clear the interrupt mask bit before exiting the isr.
hope this helps,
ed