Texas Instruments TMS320C2XX User Manual

Page 494

Advertising
background image

Task-Specific Program Code

C-9

Program Examples

Example C–5. Testing and Using the Timer (timer.asm)

* File:

timer.asm

*

* Function: Timer test code

*

* PRD=0x00ff,TDDR=f @ 50ns, gives an interrupt interval=205us

*

* PRD=0xffff,TDDR=0 @ 50ns, gives an interrupt interval=3.27ms*
* Timer interval measurable on I/O 2,3 or xf pins

*

.title ”Timer Test”

; Title

.copy

”init.h”

; Variable and register declaration

.copy

”vector.h”

; Vector label declaration

.text

start:

clrc

CNF

; Map block B0 to data memory

ldp

#0h

; set DP=0

setc

INTM

; Disable all interrupts

splk

#0000h,60h

out

60h, wsgr

; Set zero wait states

splk

#0ffffh,ifr

; clear interrupts

splk

#0004h,imr

; enable timer interrupt

splk

#0e00ch, 60h

; configure bit I/O I03 and IO2 as outputs

out

60h, aspcr

; set the aspcr for the above

mar

*,ar1

lar

ar1,#rxbuf

splk

#0004h,61h

; bit value to set I/O 2

splk

#0008h,62h

; bit value to set I/O 3

out

61h,iosr

; set the bit 2 = high, 3= zero

splk

#0000h, 63h

splk

#00ffh, 64h

out

64h, prd

; set PRD=0x00ffh

out

63h, tim

; set TIM=0x0000

splk

#0c2fh, 64h

; PSC, TDDR are zero, reload, restart

out

64h, tcr

clrc

intm

clrc

xf

wait:

out

62h,iosr

; set io2=0

idle
clrc

xf

b

wait

timer:

setc

xf

; xf =1

in

68h,tcr

; Read tcr,prd, tim regs.

in

69h,prd

in

6ah,tim

out

61h,iosr

; set io2=1

clrc

intm

ret

inpt1:

ret

; Unused interrupt routines

inpt23:

ret

codtx:

ret

codrx:

ret

uart:

ret
.end

; Assembler module end directive –optional

Advertising