关于DSPS_v_5.150.2使用app_easy_timer()定时器的问题

问题描述: 在使用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();
}

Parents
  • 谢谢,我开启app_easy_timer()函数的目的是想周期唤醒DA14583
    1.如果我使用硬件timer的话,在extend_sleep模式下,硬件timer是不能使用的。
    2.重开一个定时器的话,算是BLE event么?或者说这样子能唤醒DA14583么?
    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__);
    wakeup_timer = app_easy_timer(DC_TIMER_TO,dc_timer_cb);
    }

    @Gongyu_Dialog 期待您的回复。。

Reply
  • 谢谢,我开启app_easy_timer()函数的目的是想周期唤醒DA14583
    1.如果我使用硬件timer的话,在extend_sleep模式下,硬件timer是不能使用的。
    2.重开一个定时器的话,算是BLE event么?或者说这样子能唤醒DA14583么?
    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__);
    wakeup_timer = app_easy_timer(DC_TIMER_TO,dc_timer_cb);
    }

    @Gongyu_Dialog 期待您的回复。。

Children
No Data