NRF51822裸機GPIOTE學習筆記

GPIOTE

(GPIOTE) :GPIO Tasks and Events 

將GPIO的中斷快速觸發做成一個單獨的模塊GPIOTE,也提供使用任務(TASK)和訪問(EVENT)的方式訪問GPIO引腳的功能.

** TASK、EVENT可以配合PPI模塊使用,PPI將TASK、EVENT綁定兩端,EVENT發生時,TASK自動觸發。(不需要cpu的參與,減輕負荷、降低功耗)**

Task和Event均可分爲三類:

其中任務模式作爲輸出使用,而事件模式就作爲中斷觸發使用。

TASK:

置位、清零、翻轉
在這裏插入圖片描述

EVENT:

** 上升沿、下降沿、任何變化**
在這裏插入圖片描述

GPIOTE配置

task任務通過OUT[0]–OUT[3]設置三種觸發狀態;
event 事件通過檢測信號產生PORT enevt事件,產生 IN[n] event事件;
在這裏插入圖片描述
GPIOTE有四個通道,四個通道通過GONFIG[0]-GONFIG[3]來配置,這四個通道可單獨設置,和GPIO綁定。
在這裏插入圖片描述
需要GPIOTE中斷功能時可以設置相關寄存器的相應位讓某個通道做爲EVENT(事件)(配置爲上升沿,下降沿觸發)然後配置中斷使能。

詳細使用方法(見手冊)
在這裏插入圖片描述

中斷配置

按照手冊寄存器的配置

	A:MODE 模式設置
	B:PSEL  設置管腳
	C:POLARIY     設置下降沿觸發
nrf_gpio_cfg_input(BUTTON_1,GPIO_PIN_CNF_PULL_Pullup);  //設置爲上拉輸入
	
NRF_GPIOTE->CONFIG[0] =  (GPIOTE_CONFIG_POLARITY_HiToLo << GPIOTE_CONFIG_POLARITY_Pos)
                           | (12 << GPIOTE_CONFIG_PSEL_Pos)  
                           | (GPIOTE_CONFIG_MODE_Event << GPIOTE_CONFIG_MODE_Pos);//中斷配置
NVIC_SetPriority(GPIOTE_IRQn,3);                  //中斷優先級設定爲3
 NVIC_EnableIRQ(GPIOTE_IRQn);                      //使能總中斷                          
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章