7个职位/0个新职位
最后一篇文章
李立雄
离线
最后一次见到:2年3个月前
已加入:2015-08-16 08:22
关于时间

你好:

我用最短的时间来做RTC。如果我按了键唤醒它,在启用了延长睡眠模式的情况下,它的计数不正确。不过,如果我不按键的话,它可以在延长睡眠模式下工作。它也适用于延长睡眠模式禁用。

发生了什么?

设备:
MT\u对话框
离线
最后一次见到:1个月4周前
工作人员
已加入:2015-06-08 11:34
嗨,熊先生,

嗨,熊先生,

应用程序可以在BLE运行时和应用睡眠补偿后安全地调用特定函数。所以我猜你是在唤醒后调用函数。同样,你也不能通过使用da作为RTC来获得公平的准确性。

谢谢你的对话

李立雄
离线
最后一次见到:2年3个月前
已加入:2015-08-16 08:22
我按了键,它就会

我按了这个键之后,它会比平常跑得快。

我更新时间的代码放在main_func(arch_main.c)中,如下所示:

int main函数(void)
{
...

/*
************************************************************************************
*主回路
************************************************************************************
*/
而(1)
{
//安排所有挂起事件
如果(GetBits16(CLK\ U RADIO\ U REG,BLE\ U ENABLE)==1){//BLE时钟已启用
....
}

myUpdateTime();//下面是我调用lld_evt_time_get来计算运行时间的代码。
...

}

}

这地方合适吗?你能告诉我睡眠补偿是什么代码吗?

MT\u对话框
离线
最后一次见到:1个月4周前
工作人员
已加入:2015-06-08 11:34
你好,熊先生,

你好,熊先生,

BLE在主while循环中不是一直启用的,我不明白您将函数放在了哪里。尝试在app\u on ble\u powered(app\u asynch\u trm)或app\u on full\u power(app\u asynch\u proc)中调用函数。时钟的补偿在rwble.c文件中的函数lld\u sleep\u compensate\u func\u patched中执行。

谢谢你的对话

强者世界
离线
最后一次见到:3年3个月前
已加入:2015-05-12 09:55
你好,我有两个关于

你好,我有两个问题关于你的时间。
1.您提到da不应该用作精确的RTC,那么如果项目从扩展模式同步唤醒并使用RTC的功能而不考虑32k晶体精度,那么lld\U evt\U time\U get会发生什么?
2,当达到UINT32时,lld\u evt\u time\u是否溢出?在当前的测试中,我不知道函数的最大值。

MT\u对话框
离线
最后一次见到:1个月4周前
工作人员
已加入:2015-06-08 11:34
嗨,强者世界,

嗨,强者世界,

当da进入睡眠状态时,睡眠时间由低功耗时钟测量。当唤醒时,周期被读取并在可编程时隙中转换,并校正基准时间参考计数器。如果你没有一个精确的时钟,你就无法正确地测量睡眠时间。基本时间计数器是27位计数器。

谢谢你的对话

强者世界
离线
最后一次见到:3年3个月前
已加入:2015-05-12 09:55
谢谢,我知道了。

谢谢,我知道了。

主题已锁定