lld_evt_time_get()返回0

⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
8个帖子/ 0新
最后一篇
本杰德杜
离线
最后一次露面:2个月1周前
加入:2016-03-14 02:38
lld_evt_time_get()返回0

嗨对话框,

我发现有时lld_evt_time_get()返回0,怎么可能发生这种情况?怎么避免它?

谢谢

本杰明

12月22日

设备:
cyibin.
离线
最后一次露面:7个月5天前
职员
加入:2017-12-14 02:48
嗨本杰明,

嗨本杰明,

您在哪里调用lld_evt_time_get()函数?

应用程序可以安全地调用此功能:
BLE很活跃
2.应用睡眠补偿后。(这是必要的,因为lld_evt_time_get()读取在580睡眠时未运行的计数器)。请注意,当BLE核心唤醒时,SW通过SW完成睡眠补偿。

布尔

宜宾

本杰德杜
离线
最后一次露面:2个月1周前
加入:2016-03-14 02:38
嗨对话框,

嗨对话框,

我使用了DSP示例,并使用了定时器,间隔为160(0.625ms作为单元(Timer0_Set(20000,0,0))))

代码如下:

void timer_callback(void)

{

ARCH_PRINTF(“time =%d \ r \ n”,lld_evt_time_get());

}

把它放在附件中。

如在附件中,如果两个585(不是580如您的邮件中)连接,则输出有时是0,有时不是0,如果不是0,那么如果不是0,则间隔不完全160,如果两个585不是完全160Connceted,输出为160,我的代码在主机端运行。

希望您可以帮助分析为什么会发生这种情况以及如何避免它。

谢谢

本杰明

2020年1月6日。

附件:
本杰德杜
离线
最后一次露面:2个月1周前
加入:2016-03-14 02:38
嗨对话框,

嗨对话框,

简而言之,我的问题是在DSP示例中,当两个585得到连接时,为什么有时lld_evt_time_get()返回0?

该函数在计时器中呼叫。

谢谢

本杰明

1月7日

PM_DIALOG.
离线
最后一次露面:1天2小时前
职员
加入:2018-02-08 11:03
嗨Benjamindu.

嗨Benjamindu.

LLD_EVT_TIME_GET()根据625US基础时间计数器测量时间并返回BLE定时器的值。该计数器没有稳定的时钟输入,但根据设备是否正在睡觉而变化,或者它是清醒的,并且根据XTAL16和XTAL32从上电传出时的时间。因此,测量的时间来自xtal16,并且当睡眠期间通过xtal32测量睡眠期间已经过去的时间,并在设备唤醒时得到补偿并应用于计时器。您的设备始终处于活动状态还是您正在使用任何睡眠模式?

谢谢,PM_DIALOG.

本杰德杜
离线
最后一次露面:2个月1周前
加入:2016-03-14 02:38
嗨对话框,

嗨对话框,

非常感谢您的快速回复。

1)我只使用计时器来调用lld_evt_time_get(),我不改变睡眠模式,如果两个585得到连接,lld_evt_time_get()会自动返回0,无0,Canyou在最后看看我的邮件?你能否引用附加的输出?

2)是否有任何功能我可以呼叫返回当前睡眠模式?然后我可以在lld_evt_time_get()返回0和无0时知道睡眠模式。

谢谢

本杰明

1月8日

本杰德杜
离线
最后一次露面:2个月1周前
加入:2016-03-14 02:38
嗨对话框,

嗨对话框,

要测试睡眠模式,是否有任何功能我可以呼叫返回当前睡眠模式?然后我可以在lld_evt_time_get()返回0和无0时知道睡眠模式。

谢谢

本杰明

1月10日

PM_DIALOG.
离线
最后一次露面:1天2小时前
职员
加入:2018-02-08 11:03
嗨Benjamindu,

嗨Benjamindu,

请将uder_config.h中的app_default_sleep_mode更改为Arch_sleep_off。请使用t arch_get_sleep_mode()API,以命令当前的休眠模式。

谢谢,PM_DIALOG.