嗨,对话框中,
我发现有时lld_evt_time_get()返回0,这是怎么发生的?如何避免呢?
谢谢
便雅悯
12月22日
你好,本杰明,
在哪里调用lld_evt_time_get()函数?
应用程序可以在以下情况下安全地调用该函数:1.BLE是活跃的2.在睡眠补偿之后。(这是必需的,因为lld_evt_time_get()读取580休眠时没有运行的计数器)。注意,当BLE核心苏醒时,睡眠补偿是由SW完成的。
Br
宜宾
我使用DSPS的例子,并使用一个计时器,间隔是160(0.625ms作为一个单位(timer0_set(20000, 0, 0)))
该代码如下:
空白timer_callback(空白)
{
arch_printf(“时间= % d \ r \ n”,lld_evt_time_get ());
}
输出如附件所示。
如附件,如果两个585(不是580如邮件)连接,输出是0,有时,有时不为0,如果不是0,160年间隔不完全,如果两个585不是connceted,输出是160,我的代码运行在主机端。
希望你能帮助分析为什么会发生这种情况以及如何避免。
2020年1月6日。
简而言之,我的问题是在DSPS的例子中,当两个585连接,为什么有时lld_evt_time_get()返回0?
该函数在计时器中调用。
1月7日
嗨BenjaminDu
lld_evt_time_get()基于625us基准时间计数器测量时间,并返回BLE计时器的值。该计数器没有稳定的时钟输入,但会根据设备是否处于休眠或唤醒状态而变化,并根据XTAL16和XTAL32来测量从上电开始所经过的时间。因此,测量的时间来自XTAL16,当休眠时,通过XTAL32测量休眠期间经过的时间,并在设备醒来时得到补偿并应用于计时器。您的设备总是处于活动状态,还是正在使用任何睡眠模式?
谢谢,PM_Dialog
非常感谢您的快速回复。
1)我只使用一个定时器调用lld_evt_time_get(),我不改变睡眠模式,如果两个585连接,lld_evt_time_get()自动返回0和none 0,你能看我的邮件前最后?可以参考附件的输出吗?
2)有什么函数我可以调用来返回当前的睡眠模式?当lld_evt_time_get()返回0和none返回0时,我可以知道睡眠模式。
1月8日
为了测试睡眠模式,有什么功能我可以调用返回当前睡眠模式?当lld_evt_time_get()返回0和none返回0时,我可以知道睡眠模式。
1月10日
嗨BenjaminDu,
请将uder_config.h中的app_default_sleep_mode修改为ARCH_SLEEP_OFF。请使用t arch_get_sleep_mode() API以便操作的当前睡眠模式。
你好,本杰明,
在哪里调用lld_evt_time_get()函数?
应用程序可以在以下情况下安全地调用该函数:
1.BLE是活跃的
2.在睡眠补偿之后。(这是必需的,因为lld_evt_time_get()读取580休眠时没有运行的计数器)。注意,当BLE核心苏醒时,睡眠补偿是由SW完成的。
Br
宜宾
嗨,对话框中,
我使用DSPS的例子,并使用一个计时器,间隔是160(0.625ms作为一个单位(timer0_set(20000, 0, 0)))
该代码如下:
空白timer_callback(空白)
{
arch_printf(“时间= % d \ r \ n”,lld_evt_time_get ());
}
输出如附件所示。
如附件,如果两个585(不是580如邮件)连接,输出是0,有时,有时不为0,如果不是0,160年间隔不完全,如果两个585不是connceted,输出是160,我的代码运行在主机端。
希望你能帮助分析为什么会发生这种情况以及如何避免。
谢谢
便雅悯
2020年1月6日。
嗨,对话框中,
简而言之,我的问题是在DSPS的例子中,当两个585连接,为什么有时lld_evt_time_get()返回0?
该函数在计时器中调用。
谢谢
便雅悯
1月7日
嗨BenjaminDu
lld_evt_time_get()基于625us基准时间计数器测量时间,并返回BLE计时器的值。该计数器没有稳定的时钟输入,但会根据设备是否处于休眠或唤醒状态而变化,并根据XTAL16和XTAL32来测量从上电开始所经过的时间。因此,测量的时间来自XTAL16,当休眠时,通过XTAL32测量休眠期间经过的时间,并在设备醒来时得到补偿并应用于计时器。您的设备总是处于活动状态,还是正在使用任何睡眠模式?
谢谢,PM_Dialog
嗨,对话框中,
非常感谢您的快速回复。
1)我只使用一个定时器调用lld_evt_time_get(),我不改变睡眠模式,如果两个585连接,lld_evt_time_get()自动返回0和none 0,你能看我的邮件前最后?可以参考附件的输出吗?
2)有什么函数我可以调用来返回当前的睡眠模式?当lld_evt_time_get()返回0和none返回0时,我可以知道睡眠模式。
谢谢
便雅悯
1月8日
嗨,对话框中,
为了测试睡眠模式,有什么功能我可以调用返回当前睡眠模式?当lld_evt_time_get()返回0和none返回0时,我可以知道睡眠模式。
谢谢
便雅悯
1月10日
嗨BenjaminDu,
请将uder_config.h中的app_default_sleep_mode修改为ARCH_SLEEP_OFF。请使用t arch_get_sleep_mode() API以便操作的当前睡眠模式。
谢谢,PM_Dialog