打印

求一个PIC延时 (无中断的8位定时器)

[复制链接]
1757|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hzocce|  楼主 | 2010-5-26 10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hzocce 于 2010-5-26 18:44 编辑

求一个PIC延时 (无中断的8位定时器)


unsigned char times1=46;


void delay_s(unsigned char s)
{
while(s--)
{   
  while(times1--)
  {
         
     TMR0 =1;
      while(TMR0<255);
           
}
}
}



如上,是个8位的定时器,无中断, 分频比是 1:256 .   是PIC 的。
使用的晶振是12M 。 要定一个 1 S 时间。怎么定?
如上;delay_s(1)  的时候,时间是 999ms . 接近1S.
可为什么delay_s(2) 的时候确不是2S , 是11S 多一点点呢???????????????

请高手帮我改下,谢谢!!!
沙发
Hezhiqiang| | 2010-5-29 12:16 | 只看该作者
unsigned char times1=46;
void delay_s(unsigned char s){
while(s--)
{
      times=46; //是不是这里要赋初值
      while(times1--)
           {         
            TMR0 =1;
            while(TMR0<255);         
            }
}
}

使用特权

评论回复
板凳
Hezhiqiang| | 2010-5-29 12:17 | 只看该作者
times1=46;

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

127

主题

561

帖子

4

粉丝