你好,支持,
简短的版本是,我能清楚无法圆满BLE_BASETIMECNT BLE核心?我注意到在reg_blecore。h: # define BLE_BASETIMECNT_RESET 0 x00000000我假设这是一个位掩码,它可以用来清除计数。这是可能的吗?
我的设计目前功能如下:在设备上电,我立即把它通过调用arch_ble_ext_wakeup_on睡觉在我的数据库初始化()回调函数。最终用户可以按下一个按钮将设备“on”和它开始广告等等……要求我的应用程序的一部分是广告时间自标签激活按钮中断)(从睡眠中醒来。问题是,调用lld_evt_time_get()启动以来报告的总时间。我想可以做的是清理BLE_BASETIMECNT登记设备醒来之后。任何帮助或建议将不胜感激。谢谢。
设备:
你好戴夫,
没有重置为BLE_BASETIMECNT寄存器,这个寄存器为每次580落在睡眠和函数的值是补偿lld_sleep_compensate_func_patched(),它变得低功率时钟的运行时间。关于您的实现可以使用一个内核定时器计数和设置内核定时器准确率时你的标签需要的准确率和时间流逝递增计数器,定时器处理程序。还另一个想法,试图将与lld_evt_time_get测量时间,保留之前的价值在未来醒来醒来可以计算的间隔减去当前和之前醒来。
由于MT_dialog
我试着使用内核计时器,但它是不准确的。我失去了大约20秒超过15个小时每60秒计时器将到期。是否有阻塞函数可以调用会阻塞,直到ble核心是全面运作?现在,我更新广告数据,当设备之后醒来,然后每一分钟。问题是,正如你提到的,BLE_BASETIMECNT读取注册为0时唤醒后阅读。我想试试你提到的第二种方法,但是我不认为它会工作(至少现在我的代码站),除非ble核心完全活跃。
你好戴夫,
我无法确定你的意思关于阻塞函数的核心全面运作之前,如果你在谈论BLE计时器,在SDK5程序设置一个计时器sw检查BLE核心是活跃的,如果它是直接设置定时器使用ke_timer_set以防它不是活跃的刑期向核心时,它发送一个消息集的核心是活跃的它保佑计时器。没有等待函数,把proccessing搁置而核心是醒来。现在第二个方法你可以试着打电话的lld_evt_time_get user_on_ble_powered回调,以确保核心是活跃的。
由于MT_dialog
我为user_on_ble_powered创造了一个回调,让夫人的结果,当我调用lld_evt_time_get(),它还没有被更新的时间从低功率时钟计数。
你好戴夫,
你的意思是你得到0 ?
5.0.2.1 SDK(例如模板中)如果你把下面的片段只有0 UART回来吗?
enum arch_main_loop_callback_ret user_on_ble_powered(空白)
{
arch_set_pxact_gpio ();
arch_puts (“-”);
arch_printf (“% i -”, lld_evt_time_get ());
arch_puts (" \ n \ r ");
返回GOTO_SLEEP;
}
由于MT_dialog
你使用内部RCX时钟或外部XTAL32吗?
我试过了,它似乎没有发挥作用。
你好戴夫,
你能再试一次在一个新的模板项目或一个新鲜的例子像准系统的项目?
由于MT_dialog