查看: 281|回复: 3
收起左侧

[PIC单片机] 求救:PIC18F66K80 Timer1定时问题

[复制链接]

36

主题

58

帖子

176

积分

中级技术员

 楼主| 发表于 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
     }
}
跪求高手解决。

36

主题

58

帖子

176

积分

中级技术员

 楼主| 发表于 2017-4-19 13:28 | 显示全部楼层 |返回版面
     INTCONbits.GIE = 1;
     INTCONbits.PEIE=1;
这个两个有开,在主程序中。漏写了。
     

6

主题

85

帖子

257

积分

中级技术员

发表于 2017-5-24 23:38 | 显示全部楼层 |返回版面
清除中断标志用两个等号是几个意思?

13

主题

127

帖子

396

积分

资深技术员

发表于 2017-6-1 16:42 | 显示全部楼层 |返回版面
MICROCHIP IR代理 QQ:776514862
您需要登录后才可以回帖 登录 | 注册 手机登录

本版积分规则

关闭

热门推荐上一条 /1 下一条

分享 快速回复 返回顶部 返回列表