嗨,对话框中,
我发现有时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和无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。请使用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和无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。请使用arch_get_sleep_mode() API来设置当前操作的睡眠模式。
谢谢,PM_Dialog