跳到主要内容

lld_evt_time_get()返回0

1年前

lld_evt_time_get()返回0

张贴了本杰德杜135分 7回复
0旋转

嗨对话框,

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

谢谢

本杰明

12月22日

1年前

cyibin.

嗨本杰明,

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

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

布尔

宜宾

1年前

本杰德杜 135分

嗨对话框,

我使用了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日。

附件 尺寸
输出.pdf. 89.2 KB.

1年前

本杰德杜 135分

嗨对话框,

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

该函数在计时器中呼叫。

谢谢

本杰明

1月7日

1年前

PM_DIALOG.

嗨Benjamindu.

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

谢谢,PM_DIALOG.

1年前

本杰德杜 135分

嗨对话框,

非常感谢您的快速回复。

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

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

谢谢

本杰明

1月8日

1年前

本杰德杜 135分

嗨对话框,

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

谢谢

本杰明

1月10日

1年前

PM_DIALOG.

嗨Benjamindu,

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

谢谢,PM_DIALOG.