日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

TMS320F28335项目开发记录9_28335之中断系统

發(fā)布時間:2024/4/24 windows 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 TMS320F28335项目开发记录9_28335之中断系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

TMS320F28335項目開發(fā)記錄9_28335之中斷系統(tǒng)

2014年11月08日 12:00:12

閱讀數(shù):3104

28335中斷系統(tǒng)

?

1.中斷系統(tǒng)

? ?在這里我們要十分清楚DSP的中斷系統(tǒng)。C28XX一共有16個中斷源,其中有2個不可屏蔽的中斷RESET和NMI、定時器1和定時器2分別使用中斷13和14。這樣還有12個中斷都直接連接到外設(shè)中斷擴展模塊PIE上。說的簡單一點就是PIE通過12根線與28335核的12個中斷線相連。而PIE的另外一側(cè)有12*8根線分別連接到外設(shè),如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模塊還有中斷標(biāo)志寄存器PIEIFR,同樣它的低8位是來自外部中斷的8個標(biāo)志位,同樣CPU的IFR寄存器是中斷組的標(biāo)志寄存器。由此看來,CPU的所有中斷寄存器控制12組的中斷,PIE的所有中斷寄存器控制每組內(nèi)8個的中斷。除此之外,我們用到哪一個外部中斷,相應(yīng)的還有外部中斷的寄存器,需要注意的就是外部中斷的標(biāo)志要自己通過軟件來清零。而PIE和CPU的中斷標(biāo)志寄存器由硬件來清零。

??

??


? ?

?

?

  • EALLOW; // This is needed to write to EALLOW protected registers

  • PieVectTable.XINT2 = &ISRExint; //告訴中斷入口地址

  • EDIS; // This is needed to disable write to EALLOW protected registers

  • PieCtrlRegs.PIECTRL.bit.ENPIE = 1; // Enable the PIE block使能PIE

  • PieCtrlRegs.PIEIER1.bit.INTx5= 1; //使能第一組中的中斷5

  • IER |= M_INT1; // Enable CPU 第一組中斷

  • EINT; // Enable Global interrupt INTM

  • ERTM; // Enable Global realtime interrupt DBGM


  • ? ? 也就是說,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時鐘和系統(tǒng)時鐘一樣且支持GPIO

  • GpioCtrlRegs.GPBQSEL2.bit.GPIO55= 0;

  • GpioCtrlRegs.GPBQSEL2.bit.GPIO56= 0;

  • GpioCtrlRegs.GPBQSEL2.bit.GPIO57= 0;

  • ?
  • GpioIntRegs.GPIOXINT3SEL.bit.GPIOSEL = 54;//中斷3選擇GPIO

  • GpioIntRegs.GPIOXINT4SEL.bit.GPIOSEL = 55;

  • GpioIntRegs.GPIOXINT5SEL.bit.GPIOSEL = 56;

  • GpioIntRegs.GPIOXINT6SEL.bit.GPIOSEL = 57;

  • ?
  • XIntruptRegs.XINT3CR.bit.POLARITY= 0;//觸發(fā)模式為下降沿觸發(fā)

  • XIntruptRegs.XINT4CR.bit.POLARITY= 0;

  • XIntruptRegs.XINT5CR.bit.POLARITY= 0;

  • XIntruptRegs.XINT6CR.bit.POLARITY= 0;

  • ?
  • XIntruptRegs.XINT3CR.bit.ENABLE = 1;//使能中斷

  • XIntruptRegs.XINT4CR.bit.ENABLE = 1;

  • XIntruptRegs.XINT5CR.bit.ENABLE = 1;

  • XIntruptRegs.XINT6CR.bit.ENABLE = 1;

  • 注意一點就是外部中斷1和2只能對GPIO0—GPIO31配置;外部中斷3和4、5、6、7只對GPIO32—GPIO63配置。

    GPIO分為A(0-31)、B(32-63)、C(64-87);C組的不能配置為外部中斷;

    ?

    2.如何開啟某個中斷?

    • 設(shè)置中斷向量。例如:PieVectTable.ADCINT = &adc_isr;等
    • 打開PIE控制器。PieCtrlRegs.PIECTRL.bit.ENPIE = 1;
    • 使能PIE中對應(yīng)外設(shè)的中斷(相應(yīng)group的相應(yīng)pin)。例如:PieCtrlRegs.PIEIER1.bit.INTx8 = 1;?PieCtrlRegs.PIEIER1.bit.INTx6 = 1;等
    • 使能CPU的相應(yīng)中斷(INT1~INT12)IER |= M_INT1;
    • 使能CPU響應(yīng)中斷EINT、ERTM;;

    參考網(wǎng)址:http://www.61ic.com/Article/C2000/Delfino/201112/40118.html

    ?

    3.中斷標(biāo)志有幾級?作用是什么?

    中斷標(biāo)志主要有三級CPU(有16個標(biāo)志位)、PIE(有12組每組有12個標(biāo)志位)和外設(shè)(有的外設(shè)沒有)。

    標(biāo)志位在中斷發(fā)生后鎖存中斷狀態(tài),即表示中斷發(fā)生。在CPU響應(yīng)中斷后,會自動清除cpu級別的標(biāo)志位IFR bit,同時將INTM bit 置位,以防止其它中斷的發(fā)生;

    CPU在從PIE中取中斷向量時PIE會自動清除PIE級別的標(biāo)志位PIEIFRx.y。所以在進入中斷處理程序后除了外設(shè)所有中斷位都已經(jīng)清除。

    而中斷處理程序中需要清除PIEACKx和外設(shè)的中斷標(biāo)志位(如果有的話)。

    在CPU響應(yīng)一個中斷后,在進入ISR的時候,默認(rèn)會關(guān)斷全局中斷,即在執(zhí)行中斷服務(wù)程序時,不會有其他中斷來打斷CPU,包括本次的中斷事件。另外,如果外設(shè)的中斷標(biāo)志位不清除,不會循環(huán)進入這個中斷服務(wù)函數(shù),這個外設(shè)中斷被阻斷了。所以只有清除外設(shè)的中斷服務(wù)程序,才能響應(yīng)下一次的外設(shè)中斷。PIEACK同理,如果沒有PIEACK,這組所有中斷都被阻斷。

    ?

    參考網(wǎng)址:http://www.deyisupport.com/question_answer/f/56/t/13047.aspx

    http://www.61ic.com/Article/C2000/Delfino/201204/41777.html

    總結(jié)

    以上是生活随笔為你收集整理的TMS320F28335项目开发记录9_28335之中断系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。