打印

timer1用外接晶振32.768KHZ 不受控制

[复制链接]
2987|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hufa123|  楼主 | 2010-10-6 17:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的是PIC16F690  TIMER1的初始化如下:
void inti_time()
{
   // T1GINV=0;
    T1OSCEN = 1;//LP作为是TMR1的时钟源
    TMR1ON = 1; //使能TIMER1
TMR1GE = 1;//如果门控制不处于活动状态则开启
TMR1IE =1;//
PEIE = 1;//
T1SYNC = 1;//不同步
TMR1CS = 1;//来自外部时钟(上升沿有效)
GIE = 1;    //总中断开启
T1CKPS0=0;//预分频器为1:1
    T1CKPS1=0;
    TMR1H=0xc0;
        TMR1L=0X20;//定时2S的初始值
}
这样的定时出来的时间大概在500MS  用定时器初始值软件算出的初始值是C010,不知道初始化有问题还是CONFIG问题 。大侠的知道请示下。。
沙发
yewuyi| | 2010-10-7 08:24 | 只看该作者
一般来说,你总应该在初始化完成T1后再使能TIMER1

另外,这个东西只要自己对着手册认真的看两次自然就会算出来到底是多少时间,不需要发帖求助,完全可以自力更生。。。

使用特权

评论回复
板凳
hufa123|  楼主 | 2010-10-7 19:19 | 只看该作者
就是自立更生不了 才怀着希望上来发个
看看有没有谁遇到过

使用特权

评论回复
地板
yewuyi| | 2010-10-8 08:35 | 只看该作者
给你算了一下,应该就是500MS左右才是正确的。
因为:
TMR1H=0xc0;
TMR1L=0X20;
所以:TMR1增加到0XFFFF发生溢出则为一次定时的话,需要0XFFFF-0XC020=16351个振荡周期,因为你的振荡频率为32.768KHZ,所以16351/32768=499MS

使用特权

评论回复
5
hufa123|  楼主 | 2010-10-10 08:22 | 只看该作者
谢谢版主 已经解决了 是定时软件算出的东西不可靠 感激!

使用特权

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

本版积分规则

186

主题

393

帖子

2

粉丝