如何使用计时器唤醒?

学到更多常见问题解答教程

6个帖子/ 0新
最后一篇
GGQ_IN.
离线
最后一次露面:2周5天前
加入:2019-07-23 04:41
如何使用计时器唤醒?

嗨,

我在ext睡眠模式下使用DA14580 MODLE,我想用计时器唤醒它但是失败了。它是流睡眠,如何配置它,请?

设备:
PM_DIALOG.
线上
最后一次露面:57秒前
员工
加入:2018-02-08 11:03
嗨ggq_in,

嗨ggq_in,

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

app_easy_timer(100,cb_my_timeout);

第一个参数指定在100 * 10 ms = 100ms = 1s后的超时计时器。此时回调CB_MY_Timerout()调用。

谢谢,PM_DIALOG.

GGQ_IN.
离线
最后一次露面:2周5天前
加入:2019-07-23 04:41

嗨pm_dialog,

以下是代码的一部分:

do {//计划所有挂起事件计划_while_ble_on();} whiled(app_asynch_proc()!= goto_sleep);//时序串行打印字符串xup_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)){// uplow the radio和任何允许的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,串口在睡眠时间内不再打印SleepMode变量,为什么U1在睡眠时间内无法停止打印,是因为我有错误的配置?

2)当我设置580 MODLE ARCH_DEEP_SLEEP_ON模式时,定时器回调函数和串行和蓝牙不再有输出并发送广播,如何在深度睡眠时醒来?

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

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

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

谢谢。

PM_DIALOG.
线上
最后一次露面:57秒前
员工
加入:2018-02-08 11:03
嗨ggq_in,

嗨ggq_in,

附加的代码片段是SDK文件。它强烈建议不要修改任何SDK文件。所有更改都应应用于应用程序层,其中包含以“User_”开头的所有文件

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

还有一个中文版:(中文版)教程4:在DA1458x上配置睡眠模式

3 /你用被动和活跃的XTAL23K是什么意思?

谢谢,PM_DIALOG.

GGQ_IN.
离线
最后一次露面:2周5天前
加入:2019-07-23 04:41

嗨,

谢谢您的回答。我在睡觉前制作主要打印SleepMode。

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

谢谢。

PM_DIALOG.
线上
最后一次露面:57秒前
员工
加入:2018-02-08 11:03
嗨,您好,

嗨,您好,

你能分享零件号吗?

谢谢,PM_DIALOG.