问题描述: 在使用DSPS_v_5.150.2工程中添加wakeup_timer = app_easy_timer(DC_TIMER_TO,dc_timer_cb);定时DC_TIMER_TO=50.发现dc_timer_cb函数只被触发一次,而不是500ms周期触发。请问是我哪里还需要配置么?请DIALOG技术和论坛朋友帮忙指点下。 1.ke_msg_id_t wakeup_timer;
2. void dc_timer_cb(void) { static uint8_t i = 0;
wakeup_timer = 0xFFFF;
if(i == 0) { i = 1; GPIO_SetActive( LED_PORT, LED_PIN); }else { i = 0; GPIO_SetInactive( LED_PORT, LED_PIN); }
arch_printf("%d: dc events\r\n",__LINE__); } 3.wakeup_timer = app_easy_timer(DC_TIMER_TO,dc_timer_cb);
p.s 使用官方例程ble_app_barebone,修改以下函数,发现P1.0电平是交替,函数 adv_data_update_timer_cb是被循环调用的。 static void adv_data_update_timer_cb() { static uint8_t i = 0; app_adv_data_update_timer_used = 0xFFFF;
if(i == 0) { i = 1; GPIO_SetActive( GPIO_PORT_1, GPIO_PIN_0); }else { i = 0; GPIO_SetInactive( GPIO_PORT_1, GPIO_PIN_0); } app_easy_gap_advertise_stop(); }
1.硬件timer睡眠的情况下就用不了了。一般还是建议用app_easy_timer,底层调用的是BLE协议栈内部的定时器。 2.这样可以,没问题