我可以清除ble_basetimecnt

9个帖子/ 0新
最后一篇
Dave.renzo.
离线
最后见到:2年10个月前
加入:2015-10-08 13:21
我可以清除ble_basetimecnt

你好支持,

短版本是,我可以清除ble_baseTimecnt而不拧上ble核心吗?我注意到reg_blecore.h中,我假设的是#define ble_basetimecnt_reset 0x00000000是一个可以用来清除计数的位掩码。这可能吗?

我的设计目前的起作用如下:在设备上电我立即通过调用我的DB初始化回调函数中的Arch_ble_ext_wakeup_on()来睡眠。然后,最终用户可以按一个按钮转动设备“开”,它开始广告等......我的应用程序的一部分是为了宣传从标签激活以来的经过时间(通过睡眠中断从睡眠中抖动)。问题是调用lld_evt_time_get()报告自电源的总时间。在设备醒来后,我希望能够做的是清除BLE_BASETIMECNT寄存器。任何帮助或建议都会受到极大的赞赏。谢谢。

设备:
mt_dialog.
离线
最后见到:6个月3天前
工作人员
加入:2015-06-08 11:34
嗨戴夫,

嗨戴夫,

BLE_BASETIMECNT寄存器没有重置位,此寄存器每次均为零点才能休眠,并且该值从函数LLD_SLEEP_COMPENSATE_FUNC_PATCHED()从低功耗时钟获得经过的时间。关于您的实现,您可以使用内核定时器来计算并将内核定时器准确性设置为您的标签需要以及在计时器处理程序中递增时的时间递增时的准确性。另外另一个想法要尝试使用LLD_EVT_TIME_GET测量时间并保留上一个唤醒中的上一个唤醒的值您可以通过减去当前和之前的唤醒来计算间隔。

谢谢mt_dialog.

Dave.renzo.
离线
最后见到:2年10个月前
加入:2015-10-08 13:21
我已经尝试过使用内核

我尝试过使用内核计时器,但它不准确。我在15个小时内丢失了大约20秒,定时器设置每60秒过期。是否有一个阻塞功能,我可以调用它会阻止,直到BLE核心完全运行?现在,当设备醒来时,我正在更新广告数据,然后每一分钟。正如您所提到的,问题是,BLE_BASETIMECNT寄存器在唤醒后读取时读取为0。我想尝试你提到的第二种方法,但我认为它不会工作(至少在我的代码现在时),除非BLE核心完全有效。

mt_dialog.
离线
最后见到:6个月3天前
工作人员
加入:2015-06-08 11:34
嗨戴夫,

嗨戴夫,

我不确定你对阻塞功能的意思,直到核心完全运行,如果您正在谈论BLE定时器,在SDK5中,在设置定时器的过程中,如果BLE核心处于活动状态,如果是它将定时器直接使用ke_timer_set设置,以防它没有活动状态,它将Mesage发送到核心,并且当核心激活时,它可以服务该消息,该消息设置BLE定时器。没有等待的功能,在核心醒来时使得持有的持续性能。现在关于第二种方法,您可以尝试在user_on_ble_powered回调中调用lld_evt_time_get以确保核心处于活动状态。

谢谢mt_dialog.

Dave.renzo.
离线
最后见到:2年10个月前
加入:2015-10-08 13:21
我为用户创建了回调

我为user_on_ble_powered创建了一个回调,我正在得到lld_evt_time_get()当我调用lld_evt_time_get()时,它尚未使用从低功耗时钟的时间计数更新。

mt_dialog.
离线
最后见到:6个月3天前
工作人员
加入:2015-06-08 11:34
嗨戴夫,

嗨戴夫,

你的意思是你正在得到零?

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

枚举arch_main_loop_callback_ret user_on_ble_powered(void)
{
ARCH_SET_PXACT_GPIO();
ARCH_PUTS(“ON-”);
ARCH_PRINTF(“%I-”,lld_evt_time_get());
ARCH_PUTS(“\ n \ r”);

返回goto_sleep;
}

谢谢mt_dialog.

Joacimwe.
离线
最后见到:1年9个月前
格鲁鲁
加入:2014-01-14 06:45
你在使用内部吗?

您是否使用内部RCX时钟或外部XTAL32?

Dave.renzo.
离线
最后见到:2年10个月前
加入:2015-10-08 13:21
我两者都尝试过

我已经尝试过两次,似乎没有差异。

mt_dialog.
离线
最后见到:6个月3天前
工作人员
加入:2015-06-08 11:34
嗨戴夫,

嗨戴夫,

你能不能再试一次新的模板项目或像鞍骨项目一样的新例子?

谢谢mt_dialog.