什么是PPI
1.可编程外设互联,把事件和任务连接起来,自动触发任务,无需CPU参与。类似DMA效果
2.总共32个PPI通道,(0-19)供用户编程使用,(20-31)已经预编程了,可以添加到组,可以打开或关闭
3.框图如下所示
4.在每个PPI通道上,信号与16M时钟同步,与16M同步事件延迟一个周期,异步事件最多延迟一个周期,快捷方式不会被延迟
5.PPI寄存器可以通过PPI触发,例如CHG0EN
6.有6个PPI组CHG[0]-CHG[5],把通道加入group实现批量管理.比如:组0加入了3个通道,tasks_chg[0]触发后,3个通道同时使能了,tasks_chg[0].dis触发后,3个通道同时禁止了
7.当一个ppi通道同时属于2个组,如果chg[m].en和chg[n].dis同时发送,en优先执行
8.ppi只有任务寄存器(使能和失能分组)和通用寄存器(控制寄存器)
9.程序员无法指定用哪个ppi通道,只能调用函数获取
10.nrf_drv_ppi_channel_assign(),这里如何指定事件和任务的地址?查看寄存器手册或者nrf_drv_timer_event_address_get获取(gpiote的中间timer那里改下就行)
11.次级任务端点也可以配置一个任务,任务地址那里写入地址就是使能,写入0就是禁止
12.ppi组也是要先申请,然后把ppi通道加入组,使能该组就可以使用了
13.使用ppi时,gpiote输入那里不需要注册回调函数