把普通的 GPIO 端口配置为 GPIOTE 中断输入事件,能够绑定的只有 8 个通道,如 果我们中断的数据量超过了 8 个,多的中断无法处理,如何出现这种情况,怎么处理?显然芯片设 计厂家为了针对这种情况,特别在 GPIOTE 模块中提出了 GPIOTE PORT 功能。
GPIOTE PORT 是从使用 GPIO DETECT 信号的多个 IO 输入引脚来生成的事件。该事件将在
DETECT 信号的上升沿而产生。也就是说这个功能可以通过 32 个 IO 端口产生,相当与一个总通道, 32 个 IO 端口共用这个通道来申请中断。 同时 GPIO DETECT 信号就是通过 GPIO 的 SENSE 寄存器打开,此功能始终处于启用状态。 即便外围设备本身是休眠状态时,也不需要请求时钟或其他功率密集型基础架构来启用此功能。因 此此功能可用于在系统启动时从 WFI 或 WFE 类型的睡眠时,来唤醒 CPU 、所有外设和 CPU 空闲。 达到唤醒系统启动模式下的最低功耗模式。 为了在配置源时防止来自 PORT 事件的虚假中断,用户应首先禁用 PORT 事件中的中断(通过 INTENCLR.PORT),然后配置源( PIN_CNF [n] .SENSE ),清除配置期间可能发生的任何潜在事 件(向 EVENTS_PORT 写入 ‘1’ ),最后启用中断(通过 INTENSET.PORT )。
配置事件的时候选择 IN 事件还是 PORT 事件,这个通过配置宏实现: <





没有回复内容