为什么程序进不了定时中断

2019-07-15 18:32发布


void main()
{       
        cnt=0;
        Int0Initial();
        Initpwm();
         AUXR = 0x80;
        CCAP0H = 0x57;
  EA =1;
        TMOD  = 0x01;
        TH0 = 0x44;
        TL0 = 0x80;
        ET0 = 1;
        TR0 = 1;

  while(1)
        {
                sensor();
        }
       

}

void Int0Initial()
{       
        IN1 = 0;
        IN2 = 0;
        IN3 = 0;
        IN4 = 0;
        IN5 = 0;
        IN6 = 0;
}

void tm0_isr() interrupt 1 using 1
{       
       
  TH0 = 0x44;
        TL0 = 0x80;
       
        if (cnt == 1500)
  {       
                  cnt = 0;
                if (CCAP0H < 0x7A)
                {
                        CCAP0H = CCAP0H + 0x05;
                }
                else if(CCAP0H >= 0X7A)
                {
       CCAP0H = 0x7A;
    }
        }
        cnt++;
}

void Initpwm()
{
        CCON = 0; //
        CL = 0;//
        CH = 0;//
        CMOD = 0x01;//
        CCAP0H = CCAP0L=0x57;/256*(1-Duty)
       
        CCAPM0 = 0x42;//
        CR =1;
       
}
单片机输出的pwm的占空比一直不变。。。但我在中断里设置了每三秒加2%。。。说明一直没进中断。。。大神们求解释。。。CCAP0H是用来改变占空比的

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
阿信509
1楼-- · 2019-07-15 20:02
占空比不变不一定是 没进中断,也许是程序没编好呢,建议用别的方法判断是否进入,比如可以进中断后点个灯
ztx123
2楼-- · 2019-07-15 22:54
试了一下灯可以点亮。。。。那就奇怪了。。。占空比一直没变呀
ztx123
3楼-- · 2019-07-16 03:55
 精彩回答 2  元偷偷看……
阿信509
4楼-- · 2019-07-16 05:38
CCAP0H 这个一改占空比就能变吗?要不先试试

一周热门 更多>