beautypg.com

Motorola DSP96002 User Manual

Page 828

background image

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