怎么用定时器写延时函数?

2019-07-16 01:31发布

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);       
}
延时函数,怎么用定时器做呀?
能像上面的例子一样,能输入延时值的函数?
想做一个精确一点的,方便调用。。。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
一抹阳光
2019-07-17 18:31
貌似存在问题哦,当需要定时1ms时  若执行  count=t; 定时器计数是无法保证刚好在65536-1000的,因此如果定时tms      那么  (t-1)ms<实际<=tms,而且每次都不经相同。
这样改下如何:即使有误差,误差应该也是确定的
void DelayNms(unsigned int t)
{
      TH0=(65536-1000)/256;
      TL0=(65536-1000)%256;
      count=t;
      while(count);
}

一周热门 更多>