娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年11月08日(星期五)

正在發生

2019年11月08日 | 2440裸機編程之四 外部中斷

發布者:DazzlingSmile 來源: 51hei關鍵字:裸機編程  外部中斷 手機看文章 掃描二維碼
隨時隨地手機看文章

2440有60個中斷源(有的中斷源還有幾個子中斷源),中斷原理如下圖:



中斷源使中斷源請求寄存器(SRCPND)的相應位置一,中斷模式寄存器(INTMOD)選擇是IRQ還是FIQ模式,如果是IRQ,在中斷屏蔽寄存器(INTMSK)不屏蔽的情況下,會產生中斷,同時中斷請求寄存器(INTPND)的相應位被置一。


2440 外部中斷 編程步驟:
外部中斷初始化()
{
引腳初始化: 設置相應引腳為外部中斷功能 GPxCON
  選擇相應觸發模式    EXTINT

中斷初始化: 清除SRCPNF、INTPND中的相應中斷標志位
  中斷例程地址 -> 中斷向量表 pISR_EINTx
  使能相應中斷 rINTMSK
}


中斷例程()  __irq
{
  ……中斷程序……
  清除SRCPNF(先)、INTPND(后)中的相應中斷標志位
}


這是一個外部中斷0的實驗程序(GPF0作外部中斷源):
//********************************************************************
void Main(void)
{     
    int i;
    ……硬件初始化……

Eint0_init();
while(1);

}

void  Eint0_init(void)  //EINT0初始化
{
Uart_Printf("n外部中斷實驗:Eint0n"); 
rGPFCON = rGPFCON & ~7 |  2  ; //設置GPF0 為 外部中斷模式
rEXTINT0 = rEXTINT0 & ~7 | 2   ;//設置EINT0 為 下降沿觸發

rSRCPND = 1;     //SRCPND寫1清0
rINTPND = 1;     //INTPND寫1清0
pISR_EINT0 = (U32)Eint0_ISR; //向向量表申請中斷向量
rINTMSK = rINTMSK & ~(1);  //禁止EINT0的屏蔽
}


void   Eint0_ISR(void) __irq  //EINT0中斷例程
{
Uart_Printf("你按了一次Eint0引腳的按鍵n"); 
rSRCPND = 1;  //清楚EINT0中斷標志
rINTPND = 1; 
}

//*******************************************************************


運行結果如圖:




注意中斷標志的清除順序:SUBSRCPND(如果有)->SRCPND->INTPND  ,如果不這樣做,中斷例程結束后,還會再次引起額外的中斷
注意 pISR_EINT0 = (U32)Eint0_ISR;每一個中斷例程運行之前,都要把它的地址交給中斷向量表(此指60個中斷源的eboot中斷向量表,非地址0處的異常中斷向量表,IRQ發生時,PC先指向異常中斷向量表的IRQ位置,再跳轉到eboot中斷向量表),以在中斷發生時,正確進入相應的中斷例程,其實是把INTOFFSET中的中斷號轉換成(在eboot中斷向量表的)偏移地址。




外部中斷又24個,但不都是一致的,如下圖:

EINT0、EINT1、EINT2、EINT3是四個獨立的中斷源,而EINT4~7組成一個中斷源,EINT8~23組成一個中斷源。
那么EINT4~7的中斷程序如何寫,顯然不能用EINT0的方式,不然EINT4~EINT7的四個源相互之間無法被區分開,EINT8~23也同理。
所以為了區分它們,要用到EINTMASK和EINTPEND,EINTMASK每一位對應EINT4~EINT23的屏蔽,其他位保留;EINTPEND每一位對應EINT4~EINT23的中斷請求,其他位保留;這樣就可以順利區分EINT4~EINT23了。


下面是Eint2和Eint11的中斷程序
//********************************************************************
void Main(void)
{     
    int i;
    ……硬件初始化……

Uart_Printf("n外部中斷實驗:Eint2 和 Eint8_23n");

Eint2_init();
Eint8_23_init(); //EINT11初始化
while(1);

}

void  Eint2_init(void)  //EINT2初始化
{
rGPFCON = rGPFCON & ~3<<4 |  2<<4  ; //設置GPF2 為 外部中斷模式
rEXTINT0 = rEXTINT0 & ~7<<8 | 4<<8   ;//設置EINT2 為 上升沿觸發
rSRCPND = 1<<2;     //SRCPND寫1清0
rINTPND = 1<<2;     //INTPND寫1清0
pISR_EINT2 = (U32)Eint2_ISR;  //填入Eint2的中斷向量
rINTMSK = rINTMSK & ~(1<<2);  //禁止EINT2的屏蔽
}


void   Eint2_ISR(void) __irq  //EINT2中斷例程
{
Uart_Printf("你按了一次Eint2引腳的按鍵n"); 
rSRCPND = 1<<2;  //清楚EINT2中斷標志
rINTPND = 1<<2;
}


void  Eint8_23_init(void)  //Eint8_23初始化
{
rGPGCON = rGPGCON & ~3<<6 |  2<<6  ; //設置GPG3 為 外部中斷模式
rEXTINT1 = rEXTINT1 & ~7<<12 | 2<<12   ;//設置EINT11 為 下降沿觸發
rEINTPEND = 1<<11;    //***EINTPEND中的 EINT11位 清0
rSRCPND = 1<<5;     //SRCPND中的 Eint8_23位 清0
rINTPND = 1<<5;     //INTPND中的 Eint8_23位 清0
pISR_EINT8_23 = (U32)Eint8_23_ISR;  //填入Eint8_23的中斷向量
rEINTMASK = rEINTMASK & ~(1<<11);  //***禁止EINT11的屏蔽
rINTMSK = rINTMSK & ~(1<<5);  //禁止Eint8_23的屏蔽
}


void   Eint8_23_ISR(void) __irq  //EINT2中斷例程
{
Uart_Printf("你按了一次Eint8_23引腳的按鍵n");
rEINTPEND = 1<<11;    //***EINTPEND中的 EINT11位 清0
rSRCPND = 1<<5;     //SRCPND中的 Eint8_23位 清0
rINTPND = 1<<5;     //INTPND中的 Eint8_23位 清0
}

//*******************************************************************


結果如下:


關鍵字:裸機編程  外部中斷 引用地址:2440裸機編程之四 外部中斷

上一篇:S3C2410啟動代碼從ADSv1.2移植到KEIL For ARM uV4的方法
下一篇:2440裸機編程之三 通用I/O口

推薦閱讀

聯電陷入了中美貿易戰的漩渦中,業界認為,跨國訴訟向來耗時長久,動輙數年的時間,不僅是勞民傷財,更有恐遭天價罰款的不確定性,將是聯電的一大風險,加上在本業上除12英寸面臨客戶流失隱憂,8英寸則有產業循環的干擾因素存在,三大難關將阻礙市場買進的意愿,股價恐是上漲不易。 美光、聯電、福建晉華間的訴訟戰,在臺灣、中國大陸、美國三地延燒,正好...
新浪手機訊 11月6日下午消息,第二屆中國國際進口博覽會在上海開幕,三星可折疊屏手機Galaxy Fold也在此次進博會上亮相,并宣布將于11月8日正式在中國上市,售價15999元。經過進一步優化打磨的Galaxy Fold外面保護膜延展至屏幕的邊框,鉸鏈區域的頂部和底部通過新增加的保護帽加固,這些細節的改進讓Galaxy Fold可以說是一部更加成熟的折疊屏手機。三...
Qorvo已被美國政府選中創建一個最先進的異構集成封裝(SHIP)射頻生產和原型制造中心。該計劃將確保微電子封裝專業知識和領導能力可供美國國防承包商和商業客戶使用,這些客戶需要設計、驗證、組裝、測試和制造下一代射頻組件。在SHIP項目下,Qorvo將設計并提供最高水平的異構包裝集成。這對于滿足下一代相控陣雷達系統、無人飛行器、電子戰平臺和衛星通信...
11月4日晚間,博主@數碼閑聊站爆料,OPPO會在明年年初發布代號蝴蝶的驍龍898旗艦手機。  考慮到OPPO Find X系列是OPPO的高端旗艦產品線,因此這款驍龍898新機可能是OPPO Find X4,這將是OPPO最強悍的王牌旗艦。  從OPPO Find X開始,每一代產品都有重要突破。以OPPO Find X3系列為例,這款高端旗艦挑戰復雜工藝,在手機背部實現了“...

史海拾趣

問答坊 | AI 解惑

深圳電子開發團隊承接外包項目

團隊介紹: 深圳無線互聯技術是一個專業從事基于無線通信和嵌入式系統的軟硬件產品研發和相關技術咨詢服務的高科技 團隊,主要產品線涉及到嵌入式系統、無線數傳模塊、Zigbee無線傳感網絡、無線三表抄表、礦井人員定位、無線數據采 集、安全監控、 ...…

查看全部問答∨

工業控制器的設計

我司有一設備,需要定時控制它的開啟與關閉,一位工程師便使用了一種集成塊,輸入完plc程序,制作出一個控制器,除了基本開啟與關閉設備的功能外,還有定時報警和數顯的功能。我也想學習這種技術,假如從零開始,設計制作出這樣的控制器需要學習哪 ...…

查看全部問答∨

如何利用isp給可編程器件下載程序?

大家好,小弟還是個學生,想學PLD,又沒錢買昂貴的編程器,我想問一下如何給MAX7000S系列下載程序?是用并口isp下載線?像最簡單的EPM7032SLC44-10引腳該如何連?用什么軟件下載?那位懂得來詳細說一下,萬分感謝!!!!…

查看全部問答∨

造成LED面板燈損壞的原因分析

LED面板燈由于有著許多優點,現今已經被越來越多的應用于人們的生活中,它不僅可以用來當作日常的照明工具,同時還可以作為裝飾品為建筑增添特別的意義。LED面板燈具有高效、節能、環保的產品特性,而且它的壽命也比普通照明燈具要長很多 ...…

查看全部問答∨

大家聊聊了解芯片內部結構對我們設計的重要性

請大家隨便聊聊我們編寫代碼時,對我們使用的FPGA芯片內部詳細結構(比如LE總量、M4K總量等參數)的熟悉了解會如何影響我們的代碼設計~…

查看全部問答∨

一個電源芯片的輸出端用什么樣的電感器?

我拿到一個原理圖,里面電源芯片的輸出端用了一個電感,220uH 1)我查了這個電源芯片的輸出能力是3A,于是去查VISHAY的電感器產品,發現一般的“表貼電感”,220uH下沒有那么大的工作電流。然后我查了“濾波線圈”,發現有220uH,3A的,但是濾波線 ...…

查看全部問答∨

Launchpad低功耗設計的幾個問題

參考前人的文章,仿照著用Launchpad和NRF24L01做了一個無線溫度的發射端。之前沒有用低功耗設計,現在使用定時器定時,在中斷中讀取溫度并發送。 目前的狀態是使用紅燈來指示程序運行,綠燈指示發送成功。紅燈做Toggle,綠燈就閃一下。大概一秒鐘 ...…

查看全部問答∨

[7月11日,北京站] 2013 TI 多核DSP研討會火熱報名中

德州儀器 (TI) TMS320C66x 針對眾多高性能市場進行了優化,可充分滿足通信與網絡、工業自動化、醫療影像、關鍵性任務、視頻基礎架構以及高性能計算等應用需求。圍繞 KeyStone C66x系列, 2013 TI 多核 DSP 技術研討會即將在北京 (7月11日) 召開, ...…

查看全部問答∨

出9成新SATA品牌焊臺,數顯,恒溫,無鉛,原價1000多,400出

本帖最后由 ddllxxrr 于 2016-1-7 16:33 編輯 1、高頻渦流發熱,升降溫速度快 2、特殊的傳感器設計,保證快速響應,調溫快捷 3、精確地溫控電路,溫度控制在±2°C 4、自動休眠,節能有延長壽命 5、ESD靜電拆消設計,滿足防靜電工作需求 有意 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 建湖县| 融水| 榆树市| 广元市| 库尔勒市| 象山县| 梁河县| 太仆寺旗| 天门市| 马边| 额敏县| 凤山县| 宁远县| 平阴县| 青川县| 巴青县| 南溪县| 阿荣旗| 泸水县| 绿春县| 三门峡市| 安阳县| 新巴尔虎左旗| 常熟市| 潮安县| 台东县| 湾仔区| 咸宁市| 大庆市| 德令哈市| 丘北县| 如东县| 左云县| 龙里县| 安新县| 加查县| 新余市| 大宁县| 百色市| 井陉县| 岱山县|