static void ref_reach_temp_job(void *arg) {
uint16_t set_temp = getSet_temp() * 10;
uint16_t curr_temp = (uint16_t) temperature_get();
if (curr_temp >= set_temp - TEMPERATURE_OFFET) { //温度到达设定温度
if (reach_temp_flag == false) {
rt_timer_stop(job_timer);
rt_timer_control(job_timer, RT_TIMER_CTRL_SET_TIME, (void *)heat_time);
rt_timer_start(job_timer);
reach_temp_flag = true;
}
}
}
rt_timer_control 这样用不行,运行到这里之后,出错,
提示错误信息:(timer->init_tick < RT_TICK_MAX / 2) has assert failed at rt_timer_start:320.
很明显,超时值是有限制的,你现在设置的超过了限制值RT_TICK_MAX / 2
,需要检查一下。
是的, 改一下这里就好了,