使用Timer从回调唤醒DA1580设备

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
4个职位/ 0个新
最后发表
gert186
离线
最后看到:1年5个月前
加入:2016-04-21 59
使用Timer从回调唤醒DA1580设备

你好,

DA14580是否有定时器可以将其从睡眠模式中唤醒?

所以常规应该是这样的
启动特定持续时间的定时器
让DA14580休眠
比它唤醒后的定时器回调函数?

请帮助

设备:
MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 34
嗨gert186,

嗨gert186,

是的,您可以通过app_easy_timer() api使用内核计时器,以便在预定义的时间之后唤醒580,您可以在UM-B-051 DA1458x Software Platform reference .pdf中找到关于这个api的更多信息。正如您所提到的,app_easy_timer()需要两个参数,即延迟和一旦延迟结束就会执行的回调。

由于MT_dialog

gert186
离线
最后看到:1年5个月前
加入:2016-04-21 59
谢谢你的回复,但是我

感谢您的响应,但我不明白如何使用app_easy_timer()的情况下唤醒计时器!

我不明白如果DS14580休眠,回调函数将如何发挥作用?

空白user_prepare_sleep ()

//设置UART RX的唤醒
wkupct_register_callback (user_wakeup);

//指定计数器IRQ的IO引脚、极性、事件计数和调试时间
wkupct_enable_irq

Wkupct_pin_select (uart2_rx_gpio_port, uart2_rx_gpio_pin), // uart rx
wkupct_pin_极性(UART2_RX_GPIO_PORT, UART2_RX_GPIO_PIN, wkupct_pin_极性低),//极性低
1, //事件的数量
0 // debuggingtime = 0ms
);

arch_set_extended_sleep ();

这是清楚的,但如果我想使用回调自动唤醒会是什么样子?
因为这里是UART RX PIN。
我想在一个特定的时间睡觉,然后自动叫醒它。

MT_dialog
离线
最后看到:4个月,1个星期前
工作人员
加入:2015-06-08 34
嗨gert186,

嗨gert186,

我不确定我跟随这个问题,唤醒定时器模块使用以延长睡眠和醒来app_easy_timer () API使用内核计时器为了安排一个事件在不久的将来,为了使设备醒来后一定延迟。这两个是580完全不同的功能。您所附加的代码用于从外部中断中醒来,并且在一定的延迟后不会醒来。如上所述,您可以停止所有BLE活动,并设置一个计时器,如app_easy_timer(100, callback)。例如,让我们假设你想要广告一段特定的时间,然后停止广告,保持睡眠模式,然后醒来再做一次广告。因此,您可以在启动广告过程之前设置一个计时器,以便发出广告停止命令。当计时器结束并发出停止命令时,将调用.app_on_adv_undirect_complete回调,在这个回调中,您可以设置另一个计时器,计时您希望发出start advertise命令的时刻。因此,当时间流逝时,定时器的回调将发生,在回调中,您应该调用那个start advertise命令。

由于MT_dialog