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