KEU定时器定时随连接间隔而变化

3个员额/0个新员额
最后一篇文章
莫希特3112
离线
最后一次见到:1年2个月前
专家
加入:2014-08-04 13:45
KEU定时器定时随连接间隔而变化

我必须在睡眠模式下测量时间,所以我在睡眠模式下使用app_timer_set功能

计时器处理程序的代码

int timer_handler()
{
应用程序_禁用_睡眠();
应用程序定时器设置(翻转主定时器,任务应用程序,2);
time_n=lld_evt_time_get();
if(ke_state_get(TASK_APP)==APP_CONNECTED)
{
调试数据\u t调试数据;
debug_data.data_float=(time_n-time_o)*0.625;
attmdb_att_update_值((BAS_IDX_DEBUG_LOG_VAL+bass_env.shdl[0]),4,0,(uint8_t*)DEBUG_data.data_字节);
prf_服务器发送事件((prf_env_struct*)和bass_env,false,(BAS_IDX_DEBUG_LOG_VAL+bass_env.shdl[0]);
}
时间=时间;
应用程序设置扩展睡眠();
返回(已消耗的热量);
}

我试图使用lld_evt_time_get()函数验证计时。
在这里,我注意到以下事情:

如果连接间隔>定时器延迟-----则定时器处理程序以不同的时间间隔(不是函数调用定义的时间间隔)执行,即(time-time)*0.625非常数
如果连接间隔<计时器延迟-----则计时器处理程序以等于连接间隔的间隔执行,即(time\n-time\u o)*0.625=连接间隔

计时器没有以正确的间隔执行这是一个大问题,因为我们需要一个计时器在睡眠模式下工作(它用于从心率传感器查找RR间隔)

请尽快回复

谢谢
莫希特·马赫什瓦里

设备:
MT_对话框
离线
最后一次见到:7个月4天前
工作人员
加入:2015-06-08 11:34
你好,mohit3112,

你好,mohit3112,

内核计时器的错误为-20ms到0。你将无法达到你想要的20毫秒的时间分辨率。

谢谢你的对话

莫希特3112
离线
最后一次见到:1年2个月前
专家
加入:2014-08-04 13:45
严重误差为-20ms至0

严重的错误为-20ms到0,为什么称之为内核\u定时器,然后可以称之为内核\u抖动