在定时器中断中进行Time++
通过判断Time的大小来检测延时时间到了没有,到了就执行,不到就跳过,而不是等待
至于中断优先等级什么的,不需要考虑
在所有的中断中不要有长时间的延时,不要在中断中有等待while()之类的,在中断中进行一些简单的操作就可以,比如++,或者置位标志位之类,长时间的操作在中断以外进行
你所担心时间不准确,其实是不用管的,几十条指令也就几十uS的执行时间,对于一般mS级延时是没有什么影响的
如果你想精确到几个时钟的延时,用C是真的很难的
一般来说,1mS或者以上的延时,用定时器来做的话,你只要不在其它中断中有延时,等待之类的,基本是不用考虑被高等级中断打断的
|