DA14580内核定时器可以在什么情况下运行?激活模式,扩展睡眠模式,深度睡眠模式,BLE断开,连接和更多..
有时调用ke_timer_set(),但为什么它不工作?
它不能撞上
app_timer_handler (ke_msg_id_t const是否,
空白const *参数,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)
当GPIO从深度睡眠模式中唤醒并立即调用ke_timer_set()时,将会发生。
有些朋友知道吗?
谢谢大家

你好fengmalix,
Ke_timer_set不能用于从休眠中唤醒设备,需要使用app_timer_set。
当DA14580处于扩展/深度睡眠模式时,可以使用app_timer_set。
关于这个问题,有几个很好的线程:如果您搜索app_timer_set,就会找到几个线程,包括下面的线程。
http://support.dialog-semiconductor.com/wakeup-sleep-timeout
http://support.dialog-semiconductor.com/apptimerset
http://support.dialog-semiconductor.com/blinking-led-managed-under-interrupt
BR JE_Dialog
嗨
1、这里是app_timer_set,为什么app_timer_set可以从休眠中唤醒设备,而直接调用ke_timer_set不能唤醒设备?
App_timer_set也调用ke_timer_set…
Void app_timer_set(ke_msg_id_t const timer_id, ke_task_id_t const task_id, uint16_t delay)
{
//延迟不能超过允许的最大延迟
如果延迟> KE_TIMER_DELAY_MAX)
{
延迟= KE_TIMER_DELAY_MAX;
}
//延迟不应该为零
Else if(delay == 0)
{
延迟= 1;
}
ke_timer_set (timer_id task_id、延迟);
}
2、我没有使用app_timer_set唤醒BLE,我只是使用GPIO唤醒它,在BLE中GPIO的唤醒时间是如何确保它正确运行app_timer_set?
例如:
我有一个键唤醒BLE, app_button_press_cb()调用app_timer_set(), app_timer_handler使用LED闪烁,但有时LED不能闪烁,我发现它不能运行到app_timer_handler(),代码如下:
如果(app_ble_ext_wakeup_get ())
{
/ /唤醒祝福
#如果(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);
}
app_timer_set (APP_BLE_LED_TIMER TASK_APP 100);
app_button_enable ();
嗨fengmailx,
App_timer_set实际上调用ke_timer_set向内核发送延迟消息。所以当你调用它时,你需要确保内核是活动的。
请将app_timer_set(APP_BLE_LED_TIMER, TASK_APP, 100)放在消息处理器int app_wakeup_handler()中,以确保它工作。
的问候!
PY
好吧,
我认为这是个好主意。
由于对话框,
你好对话小组
我有一些关于app_timer_set()的问题,
如果我在main_fun中重复调用app_timer_set(),例如:我调用app_timer_set(APP_KEY_MSG, TASK_APP, 10);但是当它不进入内核定时器处理器时,调用函数app_timer_set(APP_KEY_MSG, TASK_APP, 10);一次。会发生什么?
2\现在,我想检查键按下时,唤醒计时器唤醒它,我需要使用内核计时器在app_asynch_proc(),我如何确保内核是活动的?
谢谢大家