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); //使能总中断
本文深入探讨了GPIOTE模块的原理与应用,该模块专为实现GPIO的快速中断触发而设计,支持任务(TASK)和事件(EVENT)两种访问方式。通过与PPI模块配合,实现无需CPU参与的自动触发,有效降低功耗并减轻系统负担。文章详细介绍了TASK与EVENT的配置方法,包括上升沿、下降沿和任意变化等触发条件,并提供了具体的中断配置实例。
7273

被折叠的 条评论
为什么被折叠?



