使用计时器从回调中唤醒DA1580设备

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

你好,

有没有定时器用来唤醒DA14580从睡眠模式?

例行公事应该是
启动定时器与特定的持续时间
让DA14580入睡
而不是在计时器回调函数后唤醒?

请帮助

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

嗨gert186,

是的,您可以通过app_easy_timer() api使用内核计时器,以便在预定义的时间后唤醒580,您将能够在UM-B-051 DA1458x软件平台参考文档中找到关于这个api的更多信息。正如您所提到的,app_easy_timer()需要两个参数:延迟和延迟一过就执行的回调。

由于MT_dialog

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

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

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

空白user_prepare_sleep ()

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

//指定IO引脚,极性,事件计数和计数器IRQ的恢复时间
wkupct_enable_irq

Wkupct_pin_select (uart2_rx_gpio_port, uart2_rx_gpio_pin), // uart rx . Wkupct_pin_select (uart2_rx_gpio_port, uart2_rx_gpio_pin
wkupct_pin_极性(UART2_RX_GPIO_PORT, UART2_RX_GPIO_PIN, WKUPCT_PIN_POLARITY_LOW), //极性低
1, //事件数
0 //恢复时间= 0ms
);

arch_set_extended_sleep ();

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

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

嗨gert186,

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

由于MT_dialog