內容教程案例_第1頁
內容教程案例_第2頁
內容教程案例_第3頁
免費預覽已結束,剩余4頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

青風帶你玩藍nRF51822系列 作者 青風電子社區(qū)作者 青:淘寶店:技術群硬件平臺:青云QY-nRF51822開發(fā)按鍵中下面我就來分別介紹下nRF51822的按鍵中斷控制方式。中斷控制的效率很高,一旦系統(tǒng)IO口出現上升沿或者下降沿電平就會觸發(fā)執(zhí)行中斷內的程序,這樣可以了cpu的占有率。中斷是指由于接收到來自硬(相對于處理器和內存)的異步信號或來自軟件的同步信號,而進行相應的硬/軟件處理。發(fā)出這樣的信號稱為進行中斷請求(intuptqut,Q。硬件中斷導致處理器通過一個上下文切換(otxtth)來保存執(zhí)行狀態(tài)(以程序計數器和程序狀態(tài)字等寄存器信息為主;軟件中斷則通常作為PU指令集中的一個指令,以可編程的方式直接指示這種上下文切換,并將處理導向一段中斷處理代碼。中斷在計算機多任務處理,尤其是實時系統(tǒng)中尤為有用,這樣的系統(tǒng),包括運行于其上的操作系統(tǒng),也被稱為“中斷驅動的”。簡單的來說就比如某個人正在做某事,突然來了個,他就要停下手中的事情去接,中斷相當于這個。觸發(fā)中斷后跳出原來運行的程序去執(zhí)行中斷處理。在使用nRF51822完成中斷時,需要設置如下幾個地方:第第二:外部GPIO中斷函數的設置硬件準備:在青云nRF51822豪華開發(fā)板上設置了2個用戶按鍵如下圖所示:SW1SW2分別P0.16P0.17IO管腳相連IO管腳為低的時候可以判斷管腳已經按下。key的按下來控制led的亮滅。硬件上設計是比較簡單的,這個普通的MCU的用法一致。軟件準備:庫文件。打開user文件夾中的key如上圖所示:碼農只需要自己編寫紅色框框里的兩個文件就OK了,因為采用子函數的方式其中l(wèi)ed.c在上一節(jié)控制LED燈的時候已經寫好,現在我們就來討論下如何編寫exit.c這個驅動子文件。exit.c文件主要是要起到兩個作用:第一:初始化開發(fā)板上的按鍵中斷。第二:編寫中斷執(zhí)行代碼。完成這兩個功能夠就可以在main.c文件中直接調用本驅動了。首先來認識下如何進行中斷設置。那么先來看GPIOET的功能說明:實際上就兩種模式,一個任務模式,一個事件模式。其中任務模式作為輸出使用,而事件模式就作為中斷觸發(fā)使用。任務模式有三種狀態(tài):置位,清零,翻轉。事件模式三種觸發(fā)狀態(tài):上升沿觸發(fā),下降沿觸發(fā),任意變化觸發(fā)。整個GPIOTE寄存器的個數也是非常少的,如下圖所示:我們使用到了按鍵中斷,實際上使用到了事件模式下面將主要討論這個模式,任務模式后面有專門的歷程進行討論。在CONFIG這個寄存器里詳細的進行了事件模式的配置,如下圖所示,三個紅色框框里的寄存器位我們需要進行配置:下面看看代碼:NRF_GPIOTE->CONFIG[0](GPIOTE_CONFIG_POLARITY_HiToLo<<|(16<<//中斷配置(詳細說明請參看青風上面一段代碼的編寫嚴格按照了寄存器要求進行,首先是 MODE,也就是模式設置,我們設置成事件模式。PSEL設置對應的管腳,我們選擇了SW1管腳P0.16作為觸發(fā)管腳,POLARIY極性設置為下降沿觸發(fā)。設置好了工作方式后,我們就需要進行中斷的使能了:NVIC_EnableIRQ(GPIOTE_IRQn);//NRF_GPIOTE- =GPIOTE_INTENSET_IN0_Set 使能中斷類型上面的任務基本上就可以把IO管腳中斷配置好了,如果你搞清楚寄存器,那么這個配置中斷函數的設計,主要任務就是要求判斷中斷發(fā)生后LED燈進行翻轉,當然你可以加入其它的任務。void09.17.{}那么主函數就是十分的簡單了,直接調用我們寫好的驅動函數,判斷按鍵按下后就可以翻轉O口,LD燈指示相應的變化。函數如下所示:/********************CCOPYRIGHT2014*文件名*描 *描 :按鍵中*作 :青*#include"nrf51

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論