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

[复制链接]
 楼主| 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;
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

617

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部

133

主题

617

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部