"); //-->
#include "nrf51.h"
#include "nrf_gpio.h"
#define LED (22)
#define BUTTON (18)
int main(void){
nrf_gpio_cfg_input(BUTTON, NRF_GPIO_PIN_PULLUP);
NRF_GPIOTE->CONFIG[0] = ( 3 << 0 )
| ( LED << 8)
| ( 3 << 16 )
| ( 1 << 20);
NRF_GPIOTE->CONFIG[1] = ( 1 << 0 )
| ( BUTTON << 8)
| ( 2 << 16 );
//将 GPIOTE通道 1 绑定到 PPI 通道 0 的event 输入端。
//将 GPIOTE通道 0 绑定到 PPI 通道 0 的task 端
//因为 GPIOTE通道 1和0 已经分别绑定到button和led,并且对应设置为了 event和task。
//所以当button被按下(产生下降沿)的时候,会产生event事件输入给 ppi通道0的 事件输入端,然后ppi 0的task端就会自动被触发,即led电平翻转
NRF_PPI->CH[0].EEP = (uint32_t)(&NRF_GPIOTE->EVENTS_IN[1]);
NRF_PPI->CH[0].TEP = (uint32_t)(&NRF_GPIOTE->TASKS_OUT[0]); //注意,这里赋值要取地址
//使能PPI通道 0
NRF_PPI->CHENSET = 0x01;
while(1);
return 0;
}*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。