问题描述:在使用DSPS_v_5.150.2工程中添加wakeup_timer = app_easy_timer (DC_TIMER_TO dc_timer_cb);定时DC_TIMER_TO = 50。发现dc_timer_cb函数只被触发一次,而不是500 ms周期触发。请问是我哪里还需要配置么?请对话框技术和论坛朋友帮忙指点下。
1.ke_msg_id_t wakeup_timer;
2.
空白dc_timer_cb(空白)
{
Static uint8_t I = 0;
wakeup_timer = 0 xffff;
If (i == 0) {
i = 1;
GPIO_SetActive (LED_PORT LED_PIN);
其他}{
我= 0;
GPIO_SetInactive (LED_PORT LED_PIN);
}
arch_printf(“% d:直流事件\ r \ n”,__LINE__);
}
3.wakeup_timer = app_easy_timer (DC_TIMER_TO dc_timer_cb);
注使用官方例程ble_app_barebone,修改以下函数,发现P1.0电平是交替,函数adv_data_update_timer_cb是被循环调用的。
静态孔隙adv_data_update_timer_cb ()
{
Static uint8_t I = 0;
app_adv_data_update_timer_used = 0 xffff;
If (i == 0) {
i = 1;
GPIO_SetActive (GPIO_PORT_1 GPIO_PIN_0);
其他}{
我= 0;
GPIO_SetInactive (GPIO_PORT_1 GPIO_PIN_0);
}
app_easy_gap_advertise_stop ();
}
在线等回复!请官方技术支持下。谢谢
官方的例子里面,
1 .定时器时间到,在回调函数里面,会调用app_easy_gap_advertise_stop,然后发出GAPM_CANCEL消息,通知底层停止发送广播包
2.处理上来的GAPM_CMP_EVT消息,在app_entry_point_handler - > app_gap_process_handlers - > gapm_cmp_evt_handler - >处理案例GAPM_ADV_UNDIRECT:
3.调用在结构user_app_callbacks下设定的“app_on_adv_undirect_complete”接口函数user_app_adv_undirect_complete,因为状态为GAP_ERR_CANCELED,重新组织阿包的发送
你的应用里面,可以重新在回调函数里面重开一个定时器,或者直接用PWM的方式,都可以。
谢谢,我开启app_easy_timer()函数的目的是想周期唤醒DA14583
1 .如果我使用硬件计时器的话,在extend_sleep模式下,硬件计时器是不能使用的。
2.重开一个定时器的话,算是幸运的事件么?或者说这样子能唤醒DA14583么?
空白dc_timer_cb(空白)
{
Static uint8_t I = 0;
wakeup_timer = 0 xffff;
If (i == 0) {
i = 1;
GPIO_SetActive (LED_PORT LED_PIN);
其他}{
我= 0;
GPIO_SetInactive (LED_PORT LED_PIN);
}
arch_printf(“% d:直流事件\ r \ n”,__LINE__);
wakeup_timer = app_easy_timer (DC_TIMER_TO dc_timer_cb);
}
@Gongyu_Dialog期待您的回复。。
1 .硬件计时器睡眠的情况下就用不了的了。一般还是建议用app_easy_timer,底层调用的是祝福协议栈内部的定时器。
2.这样可以,没问题
好的,谢谢。
我例外发帖问了一个关于DA14583睡眠模式在需求方工程中的逻辑问题,还请支持下,非常感谢!
好的