如何使用计时器唤醒?

⚠️
嗨,那里..感谢您参加论坛。激动人心的消息!现在,我们正在转到我们的新论坛平台,该平台将提供更好的功能,并包含在主话网站中。所有帖子和帐户都已迁移。我们现在仅在新论坛上接受流量 - 请在https://www.dialog-spoomendonductor.com/support。我们将在未来几天修复错误 /优化搜索和标记。
6个帖子 / 0新
最后一篇文章
GGQ_IN
离线
最后一次露面:1年9个月前
加入:2019-07-23 04:41
如何使用计时器唤醒?

你好,

我在Ext睡眠模式下使用DA14580 Modle,我想用计时器唤醒它,但失败了。

设备:
pm_dialog
离线
最后一次露面:6个月3周前
职员
加入:2018-02-08 11:03
嗨,ggq_in,

嗨,ggq_in,

您应该使用app_easy_timer()API来唤醒设备。设备进入睡眠模式后,您应该配置计时器。到期后,您应该将优选功能放在回调功能中。可以通过设置计时器,如下所示:

app_easy_timer(100,cb_my_timeout);

第一个参数指定计时器在100 * 10 ms = 1000ms = 1s之后超时。此时,呼叫CB_MY_TIMEROUT()get fer。

谢谢,pm_dialog

GGQ_IN
离线
最后一次露面:1年9个月前
加入:2019-07-23 04:41

嗨,pm_dialog,

这是代码的一部分:

做{//计划所有待处理事件schedule_while_ble_on();} while(app_asynch_proc()!= goto_sleep);//定时序列打印字符串wake_up_timer_used = app_easy_timer(1000,led_sock);if(((!ble_app_present)&&(check_gtl_state()))||(ble_app_present)){global_int_stop();//获取允许的睡眠模式sleep_mode = rwip_power_down();printf(“ sleep_mode =%x \ r \ n”,sleep_mode);if(((sleep_mode == mode_ext_sleep)||(sleep_mode == mode_deep_sleep)){//向无线电和任何允许的供电arch_goto_sleep(sleep_mode);if(((getWord16(sys_stat_reg)和dbg_is_up)== dbg_is_up){wdg_freeze();//停止看门狗计时器} wfi();//简历操作Arch_resume_from_sleep(); } ...

我遇到了以下问题:

1)当我将580 Modle设置为Arch_ext_sleep_on模式时,请关闭外围设备和收音机,但是串行端口(u1)此外还可以打印计时器回调,还可以一直打印SleepMode变量。我不知道是否睡着了?

1.1)然后我将串行端口更改为U2,串行端口不再在睡眠时间打印睡眠模式变量,为什么U1在睡眠时间内无法停止打印,这是因为我的配置错误吗?

2)当我设置580 Modle Arch_deep_sleep_on模式时,计时器回调功能和串行和蓝牙不再具有输出并发送广播,在深度睡眠时如何唤醒?

3)我有一个使用DA14580的设计板,但我想用32K被动替换32K活动的晶体振荡器。

这是可行的,我应该如何连接和配置?

我尝试了它,一段时间后它似乎进入了睡眠模式,但是没有蓝牙无线电传输或串行打印。

谢谢。

pm_dialog
离线
最后一次露面:6个月3周前
职员
加入:2018-02-08 11:03
嗨,ggq_in,

嗨,ggq_in,

您已连接的代码片段是SDK文件。强烈建议不要修改任何SDK文件。所有更改都应在应用程序层中应用,其中包含以“用户_”开头的所有文件

关于您的1/和2/问题,老实说,我无法理解您在代码中所做的事情,因此请提供额外的信息。我建议看看教程4:在DA1458X上配置睡眠模式文件。

也有中文版本:(中文版)教程4:在DA1458X上配置睡眠模式

3/被动和主动XTAL23K是什么意思?

谢谢,pm_dialog

GGQ_IN
离线
最后一次露面:1年9个月前
加入:2019-07-23 04:41

你好,

谢谢您的回答。我是在睡觉前打印睡眠模式的主。

我的平均是32K活跃的晶体振荡器和32K无源晶体,您知道吗?

谢谢。

pm_dialog
离线
最后一次露面:6个月3周前
职员
加入:2018-02-08 11:03
你好呀,

你好呀,

您可以分享零件号吗?

谢谢,pm_dialog