GPIO 任务和事件 (GPIOTE) 模块提供了使用任务和事件访问 GPIO 引脚的功能。每个 GPIOTE 通道可以被分配到一个引脚。GPIOTE 其实就是对 GPIO 口进行操作,同时引入了外部中断的概念。 比如按键控制分为两种情况,第一种是按键扫描,这种情况下,CPU 需要不停的工作,来判断 GPIO 口是否被拉低或者置高,效率是比较低的。另一种方式为外部中断控制,中断控制的效率很高,一 旦系统 IO 口出现上升沿或者下降沿电平就会触发执行中断内的程序。在 nrf52840 内普通 IO 管脚设 置成为 GPIO ,中断和任务管脚设置称为 GPIOTE 。 nRF5x 系列处理器将 GPIO 的中断的快速触发做成了一个单独的模块 GPIOTE ,这个模块不仅 提供了 GPIO 的中断功能,同时提供了通过 task 和 event 的方式来访问 GPIO 的功能。 GPIOTE 的后 缀 T 即为 task ,后缀 E 即为 event 。 Event 称为事件,来源与 GPIO 的输入、定时器的匹配中断等可以产生中断的外设来触发。 Task 称为任务,就是执行某一个特定功能,比如翻转 IO 端口等。那么事件 event 触发应用的任务 task 。 task 和 event 的主要是为了和 52832 中的 PPI (可编程外围设备互联系统)模块的配合使用, PPI 模 块可以将 event 和 task 分别绑定在它的两端,当 event 发生时, taks 就会自动触发。这种机制不需要 CPU 参与,极大的减小了内核负荷,降低了功率,特别适合与 BLE 定功耗蓝牙里进行应用。 GPIOTE 实际上就两种模式,一个任务模式,一个事件模式。 其中任务模式作为输出使用 ,而 事 件模式就作为中断触发使用 。
任务模式( task ):每个 GPIOTE 通道最多可以使用三个任务来执行对引脚的写操作。两个任
务是固定的输出高电平( SET )和输出低电平( CLR ),一个输出任务( OUT )可配置为执行以下
操作:
置位( Set )
清零( Clear )
切换( Toggle )
事件模式( event ):可以从以下输入条件之一在每个 GPIOTE 通道中生成事件:
上升的边缘
下降的边缘
任何改变
任务模式有三种状态:置位,清零,翻转。事件模式三种触发状态:上升沿触发,下降沿触发,
任意变化触发。 TASK 任务通过通道 OUT[0]~OUT[7] 设置输出三种触发状态, Event 则可以通过检
测信号产生





没有回复内容