如何使用lld_evt_time_get函数作为RTC

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.wsdof.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
2个职位/ 0个新职位
最后发表
ustbzhangm
离线
最后看到:9个月23小时前
加入:2015-08-24 07:50
如何使用lld_evt_time_get函数作为RTC

你好,我想在我的申请中计算一个时间。我把iBeacon设置为每天2 ~ 3点可连接。因此,我将使用一个计时器来计算当前时间。
我添加了一些代码在schedule_while_ble_on位于arch_main.c
静态内联void schedule_while_ble_on(void)

//开启BLE时钟
而(ble_is_powered ())

//设置BLE事件结束。有条件的射频校准可以运行。
uint8_t ble_end_set = ke_event_get(KE_EVENT_BLE_EVT_END);

Uint32_t current_time = lld_evt_time_get (); Uint32_t current_time = lld_evt_time_get ();
If ((current_time - last_time) > 1599){
/ / timer_second + +;
last_time =当前时间;
如果(GPIO_GetPinStatus (GPIO_PORT_2 GPIO_PIN_0))
GPIO_SetInactive (GPIO_PORT_2 GPIO_PIN_0);
其他的
GPIO_SetActive (GPIO_PORT_2 GPIO_PIN_0);

If (current_time < last_time)
last_time = 0;

//执行消息和事件
rwip_schedule ();
.......

女士1600 * 0.625 = 1000毫秒。
我用GPIO测量周期。但结果是,GPIO的高电平和低电平不等于1。只有在启动期间,GPIO输出方波恰好为1秒。
我需要帮助,谢谢。

设备:
PM_Dialog
离线
最后看到:1天14小时前
工作人员
加入:2018-02-08 11:03
嗨ustbzhangm,

嗨ustbzhangm,

强烈建议使用.app_on_ble_powered回调函数,不要试图修改SKD文件。函数的作用是:返回BLE定时器的值。如果您的睡眠时间超过1秒,则您所附加的代码将永远不会运行,因为将永远不会输入If ((current_time - last_time) > 1599)。然后设备会安排一个BLE事件,并在那个时间醒来,所以当设备醒来时,它会通过你已经附加的代码,然后执行你已经编码的动作,如切换GPIO的。当设备处于睡眠模式有附加的代码永远不会运行,因为祝福计时器将永远不会恢复和定时器周期计数将总是超过1秒。之所以得到切换接近1秒启动时因为设备不会睡眠2秒,因此,您所附加的代码将继续运行和比较。

谢谢,PM_Dialog