打印

pic18f2550 TMR0高8位不自动计数

[复制链接]
1862|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
csliu911|  楼主 | 2013-5-30 14:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我用pic18f2550做了一个电子钟,用到了TMR0定时中断,我对TMR0L和TMR0H赋初值后,只有TMR0L自动计数,而TMR0H不计数,及时TMR0L计数溢出TMR0H也没有变化,请问这是怎么一回事啊,谢谢。
沙发
huangxz| | 2013-5-30 14:18 | 只看该作者
搞成16位模式没啊

使用特权

评论回复
板凳
csliu911|  楼主 | 2013-5-30 14:34 | 只看该作者
huangxz 发表于 2013-5-30 14:18
搞成16位模式没啊

搞成16位模式了:T0CON = 0x82;这么搞的,不知道有没有问题。

使用特权

评论回复
地板
huangxz| | 2013-5-30 15:00 | 只看该作者
本帖最后由 huangxz 于 2013-5-30 15:05 编辑
csliu911 发表于 2013-5-30 14:34
搞成16位模式了:T0CON = 0x82;这么搞的,不知道有没有问题。

那可能是你读的顺序不对,应该先读TMR0L,紧接着读TMR0H
如果还不行,吧代码贴出来吧

使用特权

评论回复
5
csliu911|  楼主 | 2013-5-30 15:21 | 只看该作者
首先谢谢黄兄的解答。我对刚才你的回复有个疑问:定时器设定初值并且启动后,需要对其进行读操作么?
void Timer0_Init(void)
{
        TMR0L = 0x68;
        TMR0H = 0xc5;
       
        INTCON |= 0xa0;                //允许全局及TMR0溢出中断
        /**设置Timer0为定时工作模式,使用系统时钟预分频输出作为时钟,
           *预分频系数为1/8,并开启Timer0
           */
        T0CON = 0x82;       
}

void interrupt isr(void)
{
        if(INTCONbits.TMR0IE&INTCONbits.TMR0IF)
        {
                INTCONbits.TMR0IF = 0;                //清除TMR0中断标志位
                Key_Scan();                        //调用按键扫描程序进行周期行按键扫描
                Timer0_Init();                        //重启TMR0
                return;
        }       

}

使用特权

评论回复
6
csliu911|  楼主 | 2013-5-30 16:29 | 只看该作者
查到是怎么回事了,在FSR里有一个TMR0_Internal变量,它的值是TMR0的真实体现。TMR0H的值需要经过读TMR0L操作才能被更新。谢谢huangxz的热心帮助!

使用特权

评论回复
7
huangxz| | 2013-5-30 17:02 | 只看该作者
csliu911 发表于 2013-5-30 16:29
查到是怎么回事了,在FSR里有一个TMR0_Internal变量,它的值是TMR0的真实体现。TMR0H的值需要经过读TMR0L操 ...

看你上面的代码,写的顺序也有问题,应该先写TMR0H,在写TMR0L,
你的TMR0H还是没变么

使用特权

评论回复
8
528388812| | 2013-5-30 17:58 | 只看该作者
查到怎么回事了

使用特权

评论回复
9
csliu911|  楼主 | 2013-5-30 19:32 | 只看该作者
huangxz 发表于 2013-5-30 17:02
看你上面的代码,写的顺序也有问题,应该先写TMR0H,在写TMR0L,
你的TMR0H还是没变么 ...

开始我也以为是TMR0H和TMR0L的先后顺序不对,但是我互换了它们的顺序对TMR0的写入值没有影响。都能正常设定初值。
说来程序没有问题,严格按照datasheet上说的应该是先写TMR0L。
在仿真运行时,观察TMR0H是没有变化的,看TMR0的变化需要察看TMR0_Internal寄存器,TMR0的实时变化时通过TMR0_Internal表现的。

使用特权

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

本版积分规则

2

主题

14

帖子

0

粉丝