打印
[PIC®/AVR®/dsPIC®产品]

求救:PIC18F66K80 Timer1定时问题

[复制链接]
1617|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
liuyanlbg|  楼主 | 2017-4-19 13:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初次用PIC18F66K80,发现一个奇怪的问题。用Timer1定时器定时1ms程序,发现无论怎样修改TMR1H和TMR1L的值,定时中断均为5.4us。所用晶振为16M,4倍频。去掉4倍频,则定时中断为21.6us。初始化和中断程序如下:
void Capture_Init()
{
     T1CON  =  0X02;                //指令时钟,预分频比为1:1
     TMR1H  =  (65536-16000)/256;   //1MS定时
     TMR1L  =  (65536-16000)%256;
     PMD1bits.TMR1MD  =  0;
     T1CONbits.TMR1ON  =  1;        //启动计时
     PIE1bits.TMR1IE = 1;
     PIR1bits.TMR1IF = 0;
}

void interrupt ISR(void)
{
     static char i;
    if(PIR1bits.TMR1IF ==  1)
     {
        PIR1bits.TMR1IF ==  0;
        TMR1H  =  (65536-16000)/256;   
        TMR1L  =  (65536-16000)%256;
        i++;
        if(i%2)
            bLED_FLAP = 0;          //点亮LED
        else
            bLED_FLAP = 1;         //关闭LED
     }
}
跪求高手解决。
沙发
liuyanlbg|  楼主 | 2017-4-19 13:28 | 只看该作者
     INTCONbits.GIE = 1;
     INTCONbits.PEIE=1;
这个两个有开,在主程序中。漏写了。

使用特权

评论回复
板凳
yqdeso| | 2017-5-24 23:38 | 只看该作者
清除中断标志用两个等号是几个意思?

使用特权

评论回复
地板
michaellengleng| | 2017-6-1 16:42 | 只看该作者

使用特权

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

本版积分规则

37

主题

59

帖子

0

粉丝