我能清除BLE\u BASETIMECNT吗

9个职位/0个新职位
最后一篇文章
戴夫。伦佐
离线
最后一次见到:2年5个月前
已加入:2015-10-08 13:21
我能清除BLE\u BASETIMECNT吗

您好,支持人员,

简短的版本是,我可以清除BLE\u BASETIMECNT而不搞砸BLE核心吗?我注意到在reg#u blecore.h中有#define BLEŠu BASETIMECNTŠu RESET 0x00000000,我假设这是一个可以用来清除计数的位掩码。这可能吗?

我的设计目前的功能如下:在设备通电时,我通过调用db初始化回调函数中的arch\u ble\u ext\u wakeup\u on()立即将其休眠。最终用户可以按下一个按钮,打开设备,它开始广告等。。。我的应用程序的一部分要求是公布自标记被激活以来经过的时间(用按钮中断从睡眠中唤醒)。问题是调用lld\u evt\u time\u get()会报告自通电以来的总时间。我想做的是在设备唤醒后立即清除BLE\u BASETIMECNT寄存器。任何帮助或建议将不胜感激。谢谢。

设备:
MT\u对话框
离线
最后一次见到:1周13小时前
工作人员
已加入:2015-06-08 11:34
嗨,戴夫,

嗨,戴夫,

BLE\u BASETIMECNT寄存器没有复位位,而且每次580进入休眠状态时,该寄存器都为零,并且该值通过函数lld\u sleep\u compensate\u func\u patched()进行补偿,该函数从低功耗时钟获取经过的时间。关于您的实现,您可以使用内核计时器来计数,并将内核计时器精度设置为标记所需的精度,当时间流逝时,在计时器处理程序中增加一个计数器。另一个尝试的想法是用lld\u evt\u time\u get测量时间,并保留上一次唤醒的值。在下一次唤醒中,您可以通过减去当前和上一次唤醒来计算间隔。

谢谢你的对话

戴夫。伦佐
离线
最后一次见到:2年5个月前
已加入:2015-10-08 13:21
我试过使用内核

我试过使用内核计时器,但并不准确。我在15个小时内损失了大约20秒,计时器设置为每60秒过期一次。我是否可以调用一个阻塞函数来阻塞ble内核,直到它完全运行?现在,我正在更新广告数据,当设备唤醒时,然后每分钟更新一次。问题是,正如您所提到的,当BLE\ U BASETIMECNT寄存器在唤醒后立即读取时,它读取为0。我想尝试一下你提到的第二种方法,但是我认为除非ble核心是完全活动的,否则它不会起作用(至少我现在的代码是这样)。

MT\u对话框
离线
最后一次见到:1周13小时前
工作人员
已加入:2015-06-08 11:34
嗨,戴夫,

嗨,戴夫,

我不知道你说的阻塞功能是什么意思,直到核心完全运行,如果你说的是BLE定时器,在SDK5中,在设置计时器的过程中,sw检查ble核心是否处于活动状态,如果处于活动状态,则直接使用keèu timerèu set设置计时器。如果未处于活动状态,则向核心发送消息,当核心处于活动状态时,则提供设置ble计时器的消息。没有等待函数在内核唤醒时使进程处于等待状态。现在关于第二个方法,您可以尝试调用lld\u evt\u time\u get in the user\u on \u ble\u powered callback,以确保内核处于活动状态。

谢谢你的对话

戴夫。伦佐
离线
最后一次见到:2年5个月前
已加入:2015-10-08 13:21
我为用户创建了一个回调

我在ble-powered上为用户\u创建了一个回调,得到了一个结果,当我调用lld\u evt\u time\u get()时,它还没有用低功耗时钟的时间计数更新。

MT\u对话框
离线
最后一次见到:1周13小时前
工作人员
已加入:2015-06-08 11:34
嗨,戴夫,

嗨,戴夫,

你的意思是你得到零?

在5.0.2.1SDK中(例如在模板中),如果放置下面的代码段,UART只返回零?

枚举arch\u main\u loop\u callback\u ret user\u on \u ble\u powered(void)
{
arch_set_pxact_gpio();
拱门放置(“on-”);
arch_printf(“%i-”,lld_evt_time_get());
拱形放置(“\n\r”);

回到睡眠状态;
}

谢谢你的对话

乔奇姆韦
离线
最后一次见到:1年3个月前
上师
已加入:2014-01-14 06:45
你在用内线吗

您使用的是内部RCX时钟还是外部XTAL32?

戴夫。伦佐
离线
最后一次见到:2年5个月前
已加入:2015-10-08 13:21
我两个都试过了

我两个都试过了,好像没什么区别。

MT\u对话框
离线
最后一次见到:1周13小时前
工作人员
已加入:2015-06-08 11:34
嗨,戴夫,

嗨,戴夫,

你能再试一次在一个新的模板项目或一个新的例子,如barebone项目?

谢谢你的对话