nrf52840 IO操作 定时器 LOG

重新映射接口

#define KK     NRF_GPIO_PIN_MAP(1,9)      //定义

nrf_gpio_cfg_output(26);//初始化为输出

 nrf_gpio_cfg_input(5,NRF_GPIO_PIN_PULLUP);//初始化为上拉输入

nrf_gpio_pin_read(5) == 0 读取IO 状态  0是低电平 1是高电平

  nrf_gpio_pin_set(26);设置电平为1 

nrf_gpio_pin_clear();设置为0

 nrf_drv_gpiote_out_task_trigger(18);//翻转

void log_init(void)//log初始化
{
    ret_code_t err_code = NRF_LOG_INIT(NULL);
    APP_ERROR_CHECK(err_code);
    NRF_LOG_DEFAULT_BACKENDS_INIT();
}

    NRF_LOG_PROCESS();//主循环必须定期执行

//定时器初始化

const nrfx_timer_t TIMER_LED = NRFX_TIMER_INSTANCE(0);

//Timer事件回调函数
void timer_led_event_handler(nrf_timer_event_t event_type, void* p_context)
{
    switch (event_type)
    {
        //因为我们配置的是使用CC通道0,所以事件回调函数中判断NRF_TIMER_EVENT_COMPARE0事件
              case NRF_TIMER_EVENT_COMPARE0:
            //翻转指示灯D1状态
        //    nrf_gpio_pin_toggle(18);
                NRF_LOG_INFO("time0 runing ..\n"); 
            break;

        default:
            //Do nothing.
            break;
    }
}

//定时器初始化
void timer_init(void)
{
      uint32_t err_code = NRF_SUCCESS;
      //定时时间200ms
      uint32_t time_ms = 1000; 
      //保存定时时间对应的Ticks

    
      //定义定时器配置结构体,并使用默认配置参数初始化结构体
    nrfx_timer_config_t timer_cfg = NRFX_TIMER_DEFAULT_CONFIG;
      //初始化定时器,初始化时会注册timer_led_event_handler事件回调函数
    err_code = nrfx_timer_init(&TIMER_LED, &timer_cfg, timer_led_event_handler);
    APP_ERROR_CHECK(err_code);
      uint32_t time_ticks;
      //定时时间(单位ms)转换为ticks
      time_ticks = nrfx_timer_ms_to_ticks(&TIMER_LED, time_ms);
    //设置定时器捕获/比较通道及该通道的比较值,使能通道的比较中断
    nrfx_timer_extended_compare( &TIMER_LED, NRF_TIMER_CC_CHANNEL0, time_ticks, NRF_TIMER_SHORT_COMPARE0_CLEAR_MASK, true);
}

 nrfx_timer_enable(&TIMER_LED); //启动定时器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值