TMS320F206的中断技术及其实现
。
在图2中,0表示一般情况下读的数为0,R表示读,W表示写,-0表示复位后这位为0。2位是定时器中断,该位为1表示开放定时器中断。
(3)16位的中断控制寄存器(ICR),地址为0FFECh,各位情况如图3所示。主要用来控制HOLD/INT1和INT2/INT3。
在图3中,0位为0时表示屏蔽中断2(INT2),0位为1时表示开放中断2;1位为0时表示屏蔽中断3(INT3),1位为1时表示开放中断3;2、3位分别为INT2、INT3的标志位,当其为1时表示对应的中断有中断请求;4位1时表示单边沿触发模式,INT1引脚下降沿到来时,向CPU发出中断请求,用于INT1中断。4位为0时表示
双边沿触发模式,这种模式适用于HOLD操作。
此外,TMS320F206还有两个不能由这三种寄存器来操作和控制的中断,即:
(1)RS(Reset),RS上一旦有请求,将中止程序的流程,使程序执行重新从程序存储器地址为0000h处开始执行。
(2)NMI,当NMI引脚激活时,程序将强行转移到中断向量在24h的位置,并且其它可屏蔽中断都将禁止。所以当NMI引脚不用时,通常应把它到高电平,发免发生意外情况。
3TMS320F206的中断实现
在应用实际中,让INT2引脚测交流电压频率和相位而交流电流相位则由INT3引脚来测量,并计算电压、电流间的相位差。在本实例中,中断信号均采用过零信号,定时器的中断向量为timer,INT2/INT3的中断向量为intp2(中断向量表略)。
主程序流程图中图4所示。
主程序如下:
start:nop
setcintm;禁止所有中断
splk#0ffffh,ifr;清中断标志
splk#2h,imr;清中断标志
splk#2h,imr;清INT2,INT3的屏蔽位
splk#1h,60h
out60h,0ffech;仅开INT2
splk#0h,61h
splk#0f9fh,62h;设置定时器
out61h,0fffah
out62h,0fff9h
clrcintm;开中断
wait:idle
bwait1;等待中断
中断INT2/3服务程序(intp2)流程图如图5所示。
中断INT2/3服务程序(intp2)如下:
Intp2:setcintm;进入INT2,INT3中断服务程序。
……;根据控制字判断是进入频率测试子程序还是进入相位测试子程序
bondintp23,tc
bintp21
intp23:in60h,0fffech;读控制字ICR
bit60h,13
sst#1h,62h
bit62h,4;判断是INT2还是INT3
《TMS320F206的中断技术及其实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/145559.html
在图2中,0表示一般情况下读的数为0,R表示读,W表示写,-0表示复位后这位为0。2位是定时器中断,该位为1表示开放定时器中断。
(3)16位的中断控制寄存器(ICR),地址为0FFECh,各位情况如图3所示。主要用来控制HOLD/INT1和INT2/INT3。
在图3中,0位为0时表示屏蔽中断2(INT2),0位为1时表示开放中断2;1位为0时表示屏蔽中断3(INT3),1位为1时表示开放中断3;2、3位分别为INT2、INT3的标志位,当其为1时表示对应的中断有中断请求;4位1时表示单边沿触发模式,INT1引脚下降沿到来时,向CPU发出中断请求,用于INT1中断。4位为0时表示
双边沿触发模式,这种模式适用于HOLD操作。
此外,TMS320F206还有两个不能由这三种寄存器来操作和控制的中断,即:
(1)RS(Reset),RS上一旦有请求,将中止程序的流程,使程序执行重新从程序存储器地址为0000h处开始执行。
(2)NMI,当NMI引脚激活时,程序将强行转移到中断向量在24h的位置,并且其它可屏蔽中断都将禁止。所以当NMI引脚不用时,通常应把它到高电平,发免发生意外情况。
3TMS320F206的中断实现
在应用实际中,让INT2引脚测交流电压频率和相位而交流电流相位则由INT3引脚来测量,并计算电压、电流间的相位差。在本实例中,中断信号均采用过零信号,定时器的中断向量为timer,INT2/INT3的中断向量为intp2(中断向量表略)。
主程序流程图中图4所示。
主程序如下:
start:nop
setcintm;禁止所有中断
splk#0ffffh,ifr;清中断标志
splk#2h,imr;清中断标志
splk#2h,imr;清INT2,INT3的屏蔽位
splk#1h,60h
out60h,0ffech;仅开INT2
splk#0h,61h
splk#0f9fh,62h;设置定时器
out61h,0fffah
out62h,0fff9h
clrcintm;开中断
wait:idle
bwait1;等待中断
中断INT2/3服务程序(intp2)流程图如图5所示。
中断INT2/3服务程序(intp2)如下:
Intp2:setcintm;进入INT2,INT3中断服务程序。
……;根据控制字判断是进入频率测试子程序还是进入相位测试子程序
bondintp23,tc
bintp21
intp23:in60h,0fffech;读控制字ICR
bit60h,13
sst#1h,62h
bit62h,4;判断是INT2还是INT3
《TMS320F206的中断技术及其实现(第2页)》