資料介紹
中斷基本編程方法
利用《Stellaris外設(shè)驅(qū)動(dòng)庫》編寫一個(gè)中斷程序的基本方法如下:
1. 使能相關(guān)片內(nèi)外設(shè),并進(jìn)行基本的配置
對于中斷源所涉及的片內(nèi)外設(shè)必須要首先使能,使能的方法是調(diào)用頭文件《sysctl.h》中的函數(shù)SysCtlPeripheralEnable( )。使能該片內(nèi)外設(shè)以后,還要進(jìn)行必要的基本配置。
2. 設(shè)置具體中斷的類型或觸發(fā)方式
不同片內(nèi)外設(shè)具體中斷的類型或觸發(fā)方式也各不相同。在使能中斷之前,必須對其進(jìn)行正確的設(shè)置。以GPIO為例,分為邊沿觸發(fā)、電平觸發(fā)兩大類,共5種,這要通過調(diào)用函數(shù)GPIOIntTypeSet( )來進(jìn)行設(shè)置。
3. 使能中斷
對于Stellaris系列ARM,使能一個(gè)片內(nèi)外設(shè)的具體中斷,通常要采取分3步走的方法:
調(diào)用片內(nèi)外設(shè)具體中斷的使能函數(shù)
調(diào)用函數(shù)IntEnable( ),使能片內(nèi)外設(shè)的總中斷
調(diào)用函數(shù)IntMasterEnable( ),使能處理器總中斷
4. 編寫中斷服務(wù)函數(shù)
中斷服務(wù)函數(shù)從形式上跟普通函數(shù)類似,但在命名及具體的處理上有所不同。
中斷服務(wù)函數(shù)命名 對于GCC編譯器下的程序,中斷服務(wù)函數(shù)的名稱是事先約定好的。用戶可以打開啟動(dòng)文件“LM3S_Startup.s”來查看每個(gè)中斷服務(wù)函數(shù)的標(biāo)準(zhǔn)名稱(參見表1.1)。例如,GPIOB端口的中斷服務(wù)函數(shù)名稱是GPIO_Port_B_ISR,對應(yīng)的函數(shù)頭應(yīng)當(dāng)是“void GPIO_Port_B_ISR(void)”,參數(shù)和返回值都必須是void類型。在Keil或IAR開發(fā)環(huán)境下,中斷服務(wù)函數(shù)的名稱可以由程序員自己指定,但還是推薦采用GCC下的標(biāo)準(zhǔn)名稱,這樣有利于程序移植。
中斷狀態(tài)查詢 一個(gè)具體的片內(nèi)外設(shè)可能存在多個(gè)子中斷源,但是都共用同一個(gè)中斷向量。例如GPIOA有8個(gè)管腳,每個(gè)管腳都可以產(chǎn)生中斷,但是都共用同一個(gè)中斷向量號16,任一管腳發(fā)生中斷時(shí)都會(huì)進(jìn)入同一個(gè)中斷服務(wù)函數(shù)。為了能夠準(zhǔn)確區(qū)分每一個(gè)子中斷源,就需要利用中斷狀態(tài)查詢函數(shù),例如GPIO的中斷狀態(tài)查詢函數(shù)是GPIOPinIntStatus( )。如果不使能中斷,而采取純粹的“輪詢”編程方式,則也是利用中斷狀態(tài)查詢函數(shù)來確定是否發(fā)生了中斷以及具體是哪個(gè)子中斷源產(chǎn)生的中斷。
中斷清除 對于Stellaris系列ARM的所有片內(nèi)外設(shè),在進(jìn)入其中斷服務(wù)函數(shù)后,中斷狀態(tài)并不能自動(dòng)清除,而必須采用軟件清除(但是屬于Cortex-M3內(nèi)核的中斷源例外,因?yàn)樗鼈儾粚儆凇巴庠O(shè)”)。如果中斷未被及時(shí)清除,則在退出中斷服務(wù)函數(shù)時(shí)會(huì)立即再次觸發(fā)中斷而造成混亂。清除中斷的方法是調(diào)用相應(yīng)片內(nèi)外設(shè)的中斷清除函數(shù)。例如,GPIO端口的中斷清除函數(shù)是GPIOPinIntClear( )。
程序清單1.1以GPIOA中斷為例,給出了外設(shè)中斷服務(wù)函數(shù)的經(jīng)典編寫方法。關(guān)鍵是先將外設(shè)的中斷狀態(tài)讀到變量ulStatus里,然后及時(shí)地、放心地清除全部中斷狀態(tài),剩下的工作就是排列多個(gè)if語句分別進(jìn)行處理了。
程序清單1.1 典型的中斷服務(wù)函數(shù)編寫方法
- C語言標(biāo)準(zhǔn)庫函數(shù) 0次下載
- 基于標(biāo)準(zhǔn)庫函數(shù)與基于HAL庫函數(shù)的stm32編程方式對比
- stm32下標(biāo)準(zhǔn)庫函數(shù)與HAL庫函數(shù)編程方式的差異
- 詳細(xì)介紹STM32單片機(jī)常用庫函數(shù)資料下載
- STM32的標(biāo)準(zhǔn)例程庫函數(shù)資料合集免費(fèi)下載 31次下載
- STM32 V3.5固件庫函數(shù)調(diào)用說明中文版免費(fèi)下載 0次下載
- STM32 IAR的庫函數(shù)資料免費(fèi)下載 43次下載
- 51單片機(jī)常用庫函數(shù)程序免費(fèi)下載
- Alientek MiniSTM32開發(fā)板例程庫函數(shù)版本資料合集免費(fèi)下載 0次下載
- s132_nRF52x的庫函數(shù)詳細(xì)資料免費(fèi)下載 45次下載
- stm32f2xx固件庫手冊詳細(xì)介紹了stm32f2xx的庫函數(shù)及使用方法 278次下載
- ALIENTEK MiniSTM32開發(fā)板例程-庫函數(shù)版本 0次下載
- ALIENTEK MiniSTM32開發(fā)板例程(庫函數(shù)版本) 0次下載
- stm32庫函數(shù)解釋 16次下載
- CodeVisionAVR C語言庫函數(shù)介紹
- PLC中斷功能的作用及使用方法 2194次閱讀
- 手把手帶你移植HAL庫函數(shù) 2035次閱讀
- GD32 MCU是如何進(jìn)入中斷函數(shù)的 1140次閱讀
- 學(xué)習(xí)筆記分享|使用C庫函數(shù)控制ELF 1開發(fā)板的LED 604次閱讀
- STM32庫函數(shù)SystemInit()詳解 4184次閱讀
- 函數(shù)指針的基本概念和語法 603次閱讀
- MAXQ微控制器中斷編程 728次閱讀
- STM32F103使用(3.5)庫函數(shù)新建工程 3609次閱讀
- 如何確保單片機(jī)精確定時(shí)控制有哪些編程方法詳細(xì)說明 4157次閱讀
- 單片機(jī)的中斷函數(shù)編寫方法 7995次閱讀
- C51單片機(jī)中斷函數(shù)的修飾方法 2749次閱讀
- 淺析單片機(jī)C語言函數(shù)之中斷函數(shù) 1.1w次閱讀
- 關(guān)于單片機(jī)的中斷系統(tǒng)的詳細(xì)介紹 3.2w次閱讀
- 庫函數(shù)頭文件大全 9663次閱讀
- TMS320C32的中斷編程方法介紹 1942次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費(fèi)
- 2開關(guān)電源基礎(chǔ)知識(shí)
- 5.73 MB | 11次下載 | 免費(fèi)
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設(shè)計(jì)
- 0.60 MB | 3次下載 | 免費(fèi)
- 5DIY動(dòng)手組裝LED電子顯示屏
- 0.98 MB | 3次下載 | 免費(fèi)
- 6基于FPGA的C8051F單片機(jī)開發(fā)板設(shè)計(jì)
- 0.70 MB | 2次下載 | 免費(fèi)
- 751單片機(jī)PM2.5檢測系統(tǒng)程序
- 0.83 MB | 2次下載 | 免費(fèi)
- 8基于51單片機(jī)的RGB調(diào)色燈程序仿真
- 0.86 MB | 2次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費(fèi)
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費(fèi)
- 4開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21549次下載 | 免費(fèi)
- 5電氣工程師手冊免費(fèi)下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費(fèi)
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費(fèi)
- 7電子制作實(shí)例集錦 下載
- 未知 | 8113次下載 | 免費(fèi)
- 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德爾著
- 0.00 MB | 6656次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537797次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191186次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183279次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138040次下載 | 免費(fèi)
評論