我必须在睡眠模式下测量时间,因此我正在使用App_Timer_Set函数,因为它在睡眠模式下工作
计时器处理程序的代码
int timer_handler()
{
app_disable_sleep();
app_timer_set(flip_main_timer,task_app,2);
time_n = lld_evt_time_get();
if(ke_state_get(task_app)== app_connected)
{
debug_data_t debug_data;
debug_data.data_float =(time_n-time_o)* 0.625;
attmdb_att_update_value((bas_idx_debug_log_val + bass_env.shdl [0]),4,0,(uint8_t *)debug_data.data_bytes);
prf_server_send_event((prf_env_struct *)&bass_env,false,(bas_idx_debug_log_val + bass_env.shdl [0]));
}
time_o = time_n;
app_set_extended_sleep();
return(ke_msg_consumed);
}
我正在尝试使用lld_evt_time_get()函数验证时间。
在这里,我注意到以下是:
如果connection_interval> timer_delay --------然后timer_handler以不同的时间间隔执行(不是函数调用所定义的那个)即(time_n-time_o)* 0.625不恒定 定时器不是以适当的间隔执行这是一个大问题,因为我们需要在睡眠模式下工作的计时器(它用于从心率传感器找到RR-Interval) 请尽快回复 谢谢
如果connection_interval
Mohit Maheshwari.
嗨Mohit3112,
内核定时器具有-20ms的错误至0。您无法实现您想要的20ms的此时间分辨率。
谢谢mt_dialog.
严重错误-20ms到0,为什么要调用它kernel_timer然后可以调用它kernel_jitter