衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

DSP28335外部中斷的使用

冬至配餃子 ? 來源:電機人生 ? 作者:電機人生 ? 2023-07-07 16:41 ? 次閱讀

一、概述

處理器的外部中斷主要用于捕抓外部輸入的高低電平。本篇文章將介紹DSP28335的外部中斷的使用。

二、DSP28335外部中斷介紹

DSP28335處理器共支持7個外部中斷XINT1XINT7,其中XINT1XINT2只能對GPIO0GPIO31配置;XINT3XINT7只對GPIO32~GPIO63配置。每一個外部中斷可以被選擇為正邊沿或負邊沿觸發。DSP28335的中斷系統框圖為:

圖片

圖1 DSP中斷系統

DSP28335中斷分為三級,分別為:外設級、PIE級、CPU級。如下圖所示:

圖片

圖2 DSP28335的三級中斷機制

DSP28335的三級中斷機制可以這樣理解(以外部中斷為例):外設級為像外部引腳輸入高低電平時,同時外設級的中斷使能了,這時候外設級會產生一個中斷標志位,PIE級檢測到該中斷標志位,同時PIE自己的中斷使能了,這時候PIE會產生一個中斷標志位,PIE的中斷標志位給CPU,當CPU的中斷使能位打開了,就會響應這個中斷。總的概況:一個外部中斷要得到CPU響應,要越過外設級中斷使能、PIE中斷使能、CPU中斷使能。

圖片

圖3 DSP28335中斷過程

從圖3可以看出,只有一道一道開關閉合,才能把中斷送到CPU,讓CPU去響應中斷。

三、外部中斷涉及相關寄存器

1. 外部中斷控制寄存器---XINTnCR【外設級】

圖片

圖4 外部中斷控制寄存器---XINTnCR

外部中斷控制寄存器用于控制上升沿觸發還是下降沿觸發,中斷使能。

2. PIE這一級的寄存器【PIE級】

(1)PIE中斷使能寄存器----PIEIERx[x=1~12]

圖片

圖5 PIE中斷使能寄存器

(2)PIE中斷標志寄存器----PIEIFRx[x=1~12]

圖片

圖6 PIE中斷標志寄存器

(3)PIE中斷應答寄存器----PIACK

圖片

圖6 PIE中斷應答寄存器

3.CPU這一級寄存器【CPU級】

(1)CPU中斷標志寄存器---IFR

圖片

圖7 CPU中斷標志寄存器

(2)CPU中斷使能寄存器---IER

圖片

圖8 CPU中斷使能寄存器

四、DSP28335外部中斷實現

DSP28335外部中斷實現主要有以下步驟:

(1)失能CPU級中斷,并初始化PIE控制器和PIE中斷向量表;

(2)使能IO口時鐘,配置IO口為輸入;

(3)設置IO口與中斷線的映射關系;

圖片

圖9 中斷映射表

本次使用的是GPIO17,映射到XINT1,即INT1.4

(4)指定中斷向量表中斷服務函數地址;

(5)使能外設對應的PIE中斷**[PIE級使能];**

(6)設置外部中斷觸發方式并使能中斷**[外設級使能];**

(7)使能CPU級中斷及全局中斷**[CPU級使能];**

(8)編寫外部中斷服務函數。

編程實現:

//外部中斷配置步驟
//1。失能CPU級中斷,并初始化PIE控制器寄存器和PIE中斷向量表
//2.使能IO時鐘,配置IO口為輸入
//3.設置IO口與中斷線的映射關系
//4.指定中斷向量表中斷服務函數地址
//5.使能外設對應的PIE中斷
//6.設置外部中斷觸發中斷觸發方式并使能中斷
//7.使能CPU級中斷及全局中斷
void EXTI_Init(void)
{

// 步驟 1. 失能CPU級中斷,并初始化PIE控制器寄存器和PIE中斷向量表

DINT; // 禁止CPU全局中斷
  InitPieCtrl();
  IER = 0x0000;    // 禁止CPU中斷和清除所有CPU中斷標志
  IFR = 0x0000;
  InitPieVectTable();      //初始化PIE中斷向量表,并使其指向中斷服務子程序(ISR)

//步驟 2.使能IO時鐘,配置IO口為輸入
EALLOW;//關閉寫保護

SysCtrlRegs.PCLKCR3.bit.GPIOINENCLK = 1;    //開啟GPIO時鐘


  GpioCtrlRegs.GPAMUX2.bit.GPIO17 = 0;     //配置為通用IO口
  GpioCtrlRegs.GPADIR.bit.GPIO17 = 0;     //配置為輸入
  GpioCtrlRegs.GPAPUD.bit.GPIO17 = 0;     //配置為上拉
  EDIS;//打開寫保護




 //步驟3:設置IO口與中斷線的映射關系
  EALLOW;
  GpioIntRegs.GPIOXINT1SEL.bit.GPIOSEL = 17;//XINT1 對應 GPIO17腳(GPIO0-31配置XINT1、2;GPIO32-63配置XINT3~7)
  EDIS;

//步驟 4. 指定中斷向量表中斷服務函數地址
EALLOW;
PieVectTable.XINT1 = &EXTI_IRQ;
EDIS;

//步驟 5.使能外設對應的PIE中斷
PieCtrlRegs.PIEIER1.bit.INTx4 = 1;//使能PIE 1 組 4通道 (這里需要查詢PIE的中斷矢量表 來確定使能的位)

//6.設置外部中斷觸發中斷觸發方式并使能中斷
XIntruptRegs.XINT1CR.bit.POLARITY = 0;//下降沿觸發有效
XIntruptRegs.XINT1CR.bit.ENABLE = 1;//使能外部中斷

//步驟 7. 使能CPU級中斷及全局中斷
IER |= M_INT1;//使能INT1中斷通道 (對應的變量值在 DSP2833x_Device.h中已進行宏定義。要用|或符號賦值,防止改變其他位)

EINT;//打開全局中斷
  ERTM;//當使用仿真器調試時 開啟DEBUG中斷

}

int CNT=0;
//步驟 8. 編寫中斷函數,在中斷函數結束前寫1清零PIEACK對應位
interrupt void EXTI_IRQ(void)
{
GpioDataRegs.GPCTOGGLE.bit.GPIO75 = 1;
CNT = CNT+1;
// DELAY_US(5000);//延時

PieCtrlRegs.PIEACK.bit.ACK1 = 1;//寫1清零PIEACK對應位

}

主函數為:

void main(void)
{

InitSysCtrl();


GIOP_Init();
EXTI_Init();


while(1)
{

// GpioDataRegs.GPCSET.bit.GPIO75 = 1;
}

}

通過上面的程序就能使用按鍵使得一個LED燈翻轉。

*五、總結

本篇文章介紹了DSP28335的外部中斷的使用,使用一個按鍵作為外部輸入,觸發LED燈進行翻轉。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 處理器
    +關注

    關注

    68

    文章

    19407

    瀏覽量

    231183
  • led燈
    +關注

    關注

    22

    文章

    1592

    瀏覽量

    108410
  • GPIO
    +關注

    關注

    16

    文章

    1216

    瀏覽量

    52377
  • 外部中斷
    +關注

    關注

    1

    文章

    132

    瀏覽量

    15886
  • DSP28335
    +關注

    關注

    22

    文章

    59

    瀏覽量

    40769
收藏 人收藏

    評論

    相關推薦

    Dsp28335中斷的方

    本帖最后由 mr.pengyongche 于 2013-4-30 02:59 編輯 Dsp28335中斷的方
    發表于 01-06 13:24

    DSP28335外部中斷求助

    ` 本帖最后由 mr.pengyongche 于 2013-4-30 02:54 編輯 我想用GPIO15來控`
    發表于 03-30 07:57

    基于DSP28335的電能質量監測儀器設計

    基于DSP28335的電能質量監測儀器設計
    發表于 11-02 11:22 ?51次下載

    Dsp28335中斷的方法

    Dsp28335中斷的方法Dsp28335中斷的方法
    發表于 01-08 14:17 ?14次下載

    基于DSP28335的三電平SVPWM算法研究

    基于DSP28335的三電平SVPWM算法研究
    發表于 04-15 18:29 ?56次下載

    DSP28335中文手冊

    TI公司 DSP28335中文資料數據手冊
    發表于 05-19 11:17 ?163次下載

    DSP28335研發筆記_ccs5.2

    DSP28335研發筆記
    發表于 12-30 15:04 ?29次下載

    DSP28335串口通信(SCI)的理論,介紹和應用

    DSP28335串口通信(SCI)的理論,介紹和應用
    發表于 09-04 09:28 ?37次下載
    <b class='flag-5'>DSP28335</b>串口通信(SCI)的理論,介紹和應用

    基于DSP28335串口通信(SCI)的理論,介紹和應用

    基于DSP28335串口通信(SCI)的理論,介紹和應用
    發表于 09-04 14:07 ?29次下載
    基于<b class='flag-5'>DSP28335</b>串口通信(SCI)的理論,介紹和應用

    dsp28335如何入門:程序設計步驟

    本文首先介紹了dsp28335的概念,其次介紹了dsp28335電氣特性及特點,最后詳細闡述了關于dsp28335的程序設計步驟。
    發表于 05-23 17:09 ?2w次閱讀

    dsp28335開發板中文資料匯總(dsp28335最小系統_引腳圖_封裝_初始化程序)

    本文主要介紹了dsp28335開發板最小應用系統設計、dsp28335引腳圖功能和dsp28335封裝及dsp28335初始化程序。
    發表于 05-24 17:25 ?6.5w次閱讀
    <b class='flag-5'>dsp28335</b>開發板中文資料匯總(<b class='flag-5'>dsp28335</b>最小系統_引腳圖_封裝_初始化程序)

    DSP28335的測試總結資料和程序免費下載

    本文檔的主要內容詳細介紹的是DSP28335的測試總結資料和程序免費下載包括了:1 DSP的PWM信號,2 DSP的CAN通信,3 DSP的32位浮點運算測試,4
    發表于 08-20 08:00 ?18次下載

    使用DSP28335控制電機的資料合集免費下載

    本文檔的主要內容詳細介紹的是使用DSP28335控制電機的資料合集免費下載包括了:電機控制原理圖,硬件手冊,H橋直流電刷電機控制,DSP28335使用程序,DSP28335電機控制開發板測試步驟,
    發表于 05-18 08:00 ?165次下載
    使用<b class='flag-5'>DSP28335</b>控制電機的資料合集免費下載

    DSP28335學習筆記(3):InitSysCtrl

    在上一節中,我們講到DSP28335的啟動原理,啟動后來到main函數執行用戶代碼。我們現在已經啟動完成,那么啟動后我們如何對芯片進行配置呢?
    的頭像 發表于 07-02 15:48 ?4263次閱讀
    <b class='flag-5'>DSP28335</b>學習筆記(3):InitSysCtrl

    研旭DSP28335實用版-硬件測評

    電子發燒友網站提供《研旭DSP28335實用版-硬件測評.pdf》資料免費下載
    發表于 10-09 15:19 ?3次下載
    研旭<b class='flag-5'>DSP28335</b>實用版-硬件測評
    宝龙百家乐官网的玩法技巧和规则| 金樽国际娱乐| 杨公24水口| 横山县| 缅甸百家乐娱乐| 真人百家乐官网ea平台| 威尼斯人娱乐场cqsscgw88| 百家乐官网平玩法这样| 高密市| 亚洲百家乐的玩法技巧和规则| 网上的百家乐官网是真是假| 大西洋娱乐城开户地址| 百家乐下路教学| 百家乐官网遥控洗牌器| 六合彩特码开奖结果| 百家乐是怎样算牌| 百家乐官网赌场视屏| 澳门赌盘| 悍马百家乐的玩法技巧和规则| 新花园百家乐官网的玩法技巧和规则| 翁源县| 二八杠自行车| 网上百家乐骗人的吗| 百家乐官网投注平台信誉排行 | 免费百家乐的玩法技巧和规则 | 澳门百家乐官网长赢打| 百家乐官网作弊内幕| 大发888游戏平台 46| 澳门百家乐才能| 网页百家乐官网官网| 金木棉赌场| 免费百家乐过滤工具| 娱乐城百家乐打不开| 百家乐官网如何抽千| 潮安县| 做生意摆放老虎好不好| 澳门百家乐官网赢钱公式不倒翁| 蒙特卡罗国际娱乐| 百家乐筹码14克粘土| 真人百家乐免费开户送钱| 百家乐官网国际赌场娱乐网规则 |