nRF52832新工程定时器1和定时器2使用(Time1 & Time2)

首先声明:鄙人是个小白
首先从NORDIC的官网下载官方的SDK,然后使用里面的example搭建工程。
这里建议最好自己搭建一个新的工程(该步骤自己摸索吧,都类似的,孰能生巧,注意在C/C++ compiler里里面添加路径)。

直接上源码,作为一名代码搬运工,这是最主要的。

const nrf_drv_timer_t TIMER_1 = NRF_DRV_TIMER_INSTANCE(1);

void time1_init(void)
{
	    uint32_t time_ms = 500; //Time(in miliseconds) between consecutive compare events.
	    uint32_t time_ticks;
	    uint32_t err_code = NRF_SUCCESS;
	    nrf_drv_timer_config_t timer_cfg = NRF_DRV_TIMER_DEFAULT_CONFIG;
	    err_code = nrf_drv_timer_init(&TIMER_1, &timer_cfg, timer_led_event_handler);
	    APP_ERROR_CHECK(err_code);
	    time_ticks = nrf_drv_timer_ms_to_ticks(&TIMER_1, time_ms);
	    nrf_drv_timer_extended_compare(&TIMER_1, NRF_TIMER_CC_CHANNEL1, time_ticks,     	   NRF_TIMER_SHORT_COMPARE1_CLEAR_MASK, true);
	    nrf_drv_timer_enable(&TIMER_1);
}

void timer_led_event_handler(nrf_timer_event_t event_type, void* p_context)
{
  x = event_type;
    switch (event_type)
    {
        case NRF_TIMER_EVENT_COMPARE0:
            break;
        case NRF_TIMER_EVENT_COMPARE1:
          if(num == 0)
          {
             num=1;
             RED2_set;
             RED1_reset; //RED
          }
          else
          {
             num=0;
             RED2_reset;
             RED1_set; //RED
          }
            break;
        case NRF_TIMER_EVENT_COMPARE2:
            break;       
        default:
            //Do nothing.
            break;
    }  
}

有上面三个函数,定时器就可以使用啦!

使用定时器的时候注意修改函数里面的参数,代码搬运工毕竟要搬到地方,不然没钱钱拿。

你可能感兴趣的:(nRF52832新工程定时器1和定时器2使用(Time1 & Time2))