TMS320F206的中斷技術(shù)及其實現(xiàn)
中斷INT2/3服務(wù)程序(intp2)流程圖如圖5所示。
中斷INT2/3服務(wù)程序(intp2)如下:
Intp2: setc intm ;進入INT2,INT3中斷服務(wù)程序。
…… ;根據(jù)控制字判斷是進入頻率測試子程序還是進入相位測試子程序
bond intp23,tc
b intp 21
intp23: in 60h,0fffech ;讀控制字ICR
bit 60h,13
sst #1h,62h
bit 62h,4 ;判斷是INT2還是INT3
b intp31
intp22:splk #0002h,60h ;INT2服務(wù)程序
out 60h,0ffech ;開INT3中斷
splk #0c29h,63h
out 63h,0fff8h ;啟動定時器
splk #0002h,ifr ;清INT2/INT3的標志位
clrc intm ;開中斷
ret
intp31:setc intm ;INT3服務(wù)程序
splk #0412h,64h
out 64h,0fff8h ;停止定時器
splk #0002h,ifr ;清INT2/INT3的標志位
clrc intm
ret
in 65h,0fffah ;讀定時器的時間
…… ;計算相位
intp21:setc intm ;判斷中斷次數(shù),第一次開
…… ;定時器,第二次關(guān)定時器
bchd stoptimerl,ntc
out 63h,0fff8h ;啟動定時器
splk #0002h,ifr ;清除INT2/3標志
clrc intm ;開中斷
ret
stoptimer1:splk #0412h,64h
out 64h,0fff8h ;關(guān)定時器
…… ;計算頻率
b $ ;等待
定時器中斷服務(wù)程序(timer)流程圖如圖6所示。
timer: lacl 73h ;定時器中斷服務(wù)程序
…… ;據(jù)控制字判斷是進入頻率測試子程序還是進入相位測試子程序。
cmpr 0
bcnd timer2,tc
b timer1
timer1:lacl 69h ;頻率定時器服務(wù)子程序
add #1h
sacl 69h
splk #4h,ifr ;清除定時器標志
clrc intm
ret
timer2:lacl 69h ;相位定時器服務(wù)子程序
add #1h
sacl 69h
splk #4h,ifr ;清定時器的標志位
clrc intm
評論