Motorola DSP96002 User Manual
Page 828
46
MOTOROLA
6.7.5
Period measurement mode (mode 5)
The following program illustrates the usage of the timer module for input period measure-
ment. The period is measured in this example between 0 to 1 transitions of the input signal
on TIO0 and is stored in a table (in multiples of the chip operating clock divided by 2).
org x:$100
; define buffer in X memory internal
period
ds
$100
; measure up to 256 pulses
temp
ds
$1
; temporary storage
org p:$14
; this is timer0 interrupt vector address
jsr measure
; long interrupt to measure period
....
org p:main_body
.....
move #0,x:temp
; clear temporary storage
move #period,r0
; r0 points to start of table
move #$ff,m0
; modulo 100 to wrap around on end of table
movep #$54000000,x:TCSR0
; enable timer interrupts, mode5
bset #26,x:IPR
; enable IPL for timer 1
andi #$cf,mr
; remove interrupt masking in status register
bset #31,x:TCSR0
; timer enable
......
; do other tasks
.....
measure
movep x:TCR0,d0.l
; read new counter value
move x:temp,d1.l
; retrieve former read value (initially zero)
sub d1.l,d0.l
d0.l,x:temp
; compute delta (i.e. new -old) and store the
; new read value in temp
move d0.l,x:(r0)+
; store period value in table
rti