公文高手,超级方便的公文写作神器! 立即了解


TMS320F28335外部中断总结

tms320f28335外部中断总结

tms320f28335外部中断总结

作者:free文章来源:free点击数:93更新时间:201*-8-26

在这里我们要十分清楚dsp的中断系统。c28xx一共有16个中断源,其中有2个不可屏蔽的中断reset和nmi、定时器1和定时器2分别使用中断13

和14。这样还有12个中断都直接连接到外设中断扩展模块pie上。说的简单一点就是pie通过12根线与28335核的12个中断线相连。而pie的另外

一侧有12*8根线分别连接到外设,如ad、spi、exint等等。这样pie共管理12*8=96个外部中断。这12组大中断由28335核的中断寄存器ier来控

制,即ier确定每个中断到底属于哪一组大中断(如ier|=m_int12;说明我们要用第12组的中断,但是第12组里面的什么中断cpu并不知道需

要再由pieier确定)。接下来再由pie模块中的寄存器pieier中的低8确定该中断是这一组的第几个中断,这些配置都要告诉cpu(我们不难想

象到pieier共有12总即从pieier1-pieier12)。另外,pie模块还有中断标志寄存器pieifr,同样它的低8位是来自外部中断的8个标志位,同

样cpu的ifr寄存器是中断组的标志寄存器。由此看来,cpu的所有中断寄存器控制12组的中断,pie的所有中断寄存器控制每组内8个的中断。

除此之外,我们用到哪一个外部中断,相应的还有外部中断的寄存器,需要注意的就是外部中断的标志要自己通过软件来清零。而pie和cpu的

中断标志寄存器由硬件来清零。

eallow;//thisisneededtowritetoeallowprotectedregisters

pievecttable.xint2=&isrexint;//告诉中断入口地址

edis;//thisisneededtodisablewritetoeallowprotectedregisters

piectrlregs.piectrl.bit.enpie=1;//enablethepieblock使能pie

piectrlregs.pieier1.bit.intx5=1;//使能第一组中的中断5

ier|=m_int1;//enablecpu第一组中断

eint;//enableglobalinterruptintm

ertm;//enableglobalrealtimeinterruptdbgm

也就是说,12组中的每个中断都要完成上面的相同配置,剩下的才是去配置自己的中断。如我们提到的exint,即外面来个低电平我们就进入

中断,完成我们的程序。在这里要介绍一下,dsp的gpio口都可以配置为外部中断口,其配置方法如下:

gpioctrlregs.gpbmux2.bit.gpio54=0;//选择他们是gpio口

gpioctrlregs.gpbmux2.bit.gpio55=0;

gpioctrlregs.gpbmux2.bit.gpio56=0;

gpioctrlregs.gpbmux2.bit.gpio57=0;

gpioctrlregs.gpbdir.bit.gpio54=0;//选择他们都是输入口

gpioctrlregs.gpbdir.bit.gpio55=0;

gpioctrlregs.gpbdir.bit.gpio56=0;

gpioctrlregs.gpbdir.bit.gpio57=0;

gpioctrlregs.gpbqsel2.bit.gpio54=0;//gpio时钟和系统时钟一样且支持gpio


(未完,全文共6665字,当前显示1499字)

(请认真阅读下面的提示信息)


温馨提示

此文章为6点公文网原创,稍加修改便可使用。只有正式会员才能完整阅读,请理解!

会员不仅可以阅读完整文章,而且可以下载WORD版文件

已经注册:立即登录>>

尚未注册:立即注册>>

6点公文网 ,让我们一起6点下班!