NRF51822裸机GPIOTE学习笔记

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

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);                      //使能总中断                          
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值