请问下为什么在DA工作一段时间后,在中断里面的这个定时器时间不正确,会偏长很多,但一段时候后又正常了。
空白ButtonIrqCallback(空白)
{
Unsigned int key = 0;
unsigned char keyState = 0;
wkupct_disable_irq ();
如果(GetBits16 (SYS_STAT_REG PER_IS_DOWN))
periph_init ();
app_timer_set (APP_TIMER_BUTTON_DETECT TASK_APP 20);
}
空白app_button_enable(空白)
{
wkupct_register_callback (ButtonIrqCallback);
wkupct_enable_irq(WAKEUP_PINS, 1, 0x00);/ / debounds 5女士
}
设备:
你是在哪个工程上测试的?
\ DA1458X_SDK3.0.6 \ dk_apps \ keil_projects \接近\ reporter_fh
3.0.6之前有这样的错误。在3.0.8的版本已经进行了修正。
1 .删除函数app_adv_timer_handler()里的app_ble_ext_wakeup_on()函数调用。
2 .把app_button_press_cb函数里的这部分内容
如果(app_ble_ext_wakeup_get ())
{
#如果0
/ /唤醒祝福
#如果(EXT_SLEEP_ENABLED)
app_set_extended_sleep ();
# elif (DEEP_SLEEP_ENABLED)
app_set_deep_sleep ();
其他#
app_disable_sleep ();
# endif
SetBits32 (GP_CONTROL_REG BLE_WAKEUP_REQ 1);
app_ble_ext_wakeup_off ();
ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);
# endif
/ /新添加的
app_ble_force_wakeup ();//唤醒BLE核心
ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);
}
非常感谢。请问下上面的中断回调函数里面的#如果0里面的是不是全部不要。值需要添加app_ble_force_wakeup ();//唤醒BLE核心
ke_msg_send_basic (APP_WAKEUP_MSG TASK_APP, NULL);这两条语句就行吗?