对于非arm的单片机也可以用一个定时器实现类似arm的systick的功能:阻塞式延时。
void timerX_configYsIT(void)
{
/*设置基准时长*/
/*定时器禁止,中断使能*/
}
void timerX_HanderYsIT(void)
{
/*清中断标记*/
/*重设填充值*/
/*全局计数变量 volitile syscouts++*/
}
void Delay(unsigned long nms)
{
unsigned long tmp=nms;
syscouts =0;
/*启动定时器*/
do{
}while(syscouts <tmp);
/*停止定时器*/
}
缺点:不能嵌套使用,优化措施是设置定时结构体和队列结构,模仿时间片轮结构在每个延时到了之后置位相应标记。