要求是到达一定时间去运行相应程序、任务
如计时到t1,运行程序p1;计时到t2,运行程序p2;
但计时与程序运行是脱离开来的,即计时到t1,需继续计时,计时不能中断,也要去执行程序p1.
目前使用的是一定时间精度的定时器中断,对中断次数进行计数,然后执行程序,执行程序的时间产生了很大的时间误差
HAL_TIM_Base_Start_IT(&htim8);
int CNT = 0;
int t1[50]={ };
int t2[50]={ };
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
static int i=1;
if(htim->Instance == htim8.Instance)
{
CNT++;
if(CNT == t1[i-1])
{
程序
i++;
}
}
}
请问采用定时器方式该如何实现? |