内核计时器可以在什么情况下运行

6个职位/0个新职位
最后一篇文章
风信
离线
最后一次见到:4年2周前
已加入:2014-11-21 03:48
内核计时器可以在什么情况下运行

DA14580内核定时器可以在什么情况下运行?活动模式、扩展睡眠模式、深度睡眠模式、BLE断开连接、已连接等。。

有时调用ke\u timer\u set(),但为什么它不起作用?
这是我不能碰到的
应用程序计时器处理程序(ke\u msg\u id\u t const msgid,
void const*参数,
任务id常量目标id,
Keu任务\u id \u t const src \u id)

当GPIO从深度睡眠模式中唤醒并立即调用ke\u timer\u set()时,就会发生这种情况。

一些朋友知道什么?

TKS公司

JE\U对话框
离线
最后一次见到:11小时20分钟前
工作人员
已加入:2013-12-05 14:02
你好fengmalix,

你好fengmalix,

ke\u timer\u set不能用于从睡眠中唤醒设备,您需要使用app\u timer\u set。

当DA14580处于延长/深度睡眠模式时,可以使用应用程序定时器设置。。

有几个很好的线索:如果你搜索app\u timer\u 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\u对话框

风信
离线
最后一次见到:4年2周前
已加入:2014-11-21 03:48
您好!

您好!
1,这是app\u timer\u set,为什么app\u timer\u set可以从睡眠中唤醒设备,而直接呼叫ke\u timer\u set不能唤醒设备?
app\u timer\u set也称为ke\u timer\u set。。。

void app\u timer\u set(ke\u msg\u id\u t const timer\u id,ke\u task\u id\u t const task\u id,uint16\u t delay)
{
//延迟不得超过允许的最大值
如果(延迟>定时延迟最大值)
{
延迟=KE\u TIMER\u delay\u MAX;

}
//延迟不应为零
else if(延迟==0)
{
延迟=1;
}

keu timer\u set(计时器\u id,任务\u id,延迟);
}

2、我没有用app\u定时器设置来唤醒BLE,我只是用GPIO唤醒它,在BLE GPIO唤醒时间是如何确保app\u定时器设置正确运行的?
例如:
我有一个键来唤醒BLE,app\u按钮\u按下\u cb()调用app\u timer\u set(),app\u timer\u handler用来让LED闪烁,但有时LED不能闪烁,我发现它不能运行到app\u timer\u handler(),代码如下:

如果(app\u ble\u ext\u wakeup\u get())
{

//在这里醒来

#如果(外部睡眠启用)
app_set_extended_sleep();
#elif(启用深度睡眠)
app_set_deep_sleep();
#其他
app_disable_sleep();
#结束

SetBits32(GP\ U CONTROL\ U REG,BLE\ U WAKEUP\ U REQ,1);
app_ble_ext_wakeup_off();

ke\ u msg\ u send\ u basic(APP\ u WAKEUP\ u msg,TASK\ u APP,NULL);
}
应用程序定时器设置(应用程序发光二极管定时器,任务应用程序,100);
应用程序按钮启用();

PY\u对话框
离线
最后一次见到:2年7个月前
工作人员
已加入:2014-08-25 09:59
你好,我是冯克斯,

你好,我是冯克斯,

app\u timer\u set实际调用ke\u timer\u set向内核发送延迟消息。因此,当您调用它时,需要确保内核处于活动状态。
请将app\u timer\u set(app\u BLE\u LED\u timer,TASK\u app,100)放入message handler int app\u wakeup\u handler()中,以确保其正常工作。

当做!
PY公司

风信
离线
最后一次见到:4年2周前
已加入:2014-11-21 03:48
好 啊,

好 啊,
我认为这是个好主意。

感谢对话小组,

风信
离线
最后一次见到:4年2周前
已加入:2014-11-21 03:48
你好对话小组

你好对话小组
我有一些关于app\u timer\u set()的问题,
1\如果我在main\ fun中重复调用app\ timer\ set(),例如:我调用了app\ timer\ set(app\ KEY\ MSG,TASK\ app,10);但是当它没有进入内核计时器处理程序时,再次调用函数app\ timer\ set(app\ KEY\ MSG,TASK\ app,10)。会发生什么?
2\n现在,我想在唤醒计时器唤醒它时按下check键,我需要使用app\u asynch\u proc()中的内核计时器,如何确保内核处于活动状态?

TKS公司