微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为什么程序进不了定时中断

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

时间:10-02 整理:3721RD 点击:

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是用来改变占空比的

占空比不变不一定是 没进中断,也许是程序没编好呢,建议用别的方法判断是否进入,比如可以进中断后点个灯

试了一下灯可以点亮。那就奇怪了。占空比一直没变呀

试了一下灯可以点亮。那就奇怪了。占空比一直没变呀

CCAP0H 这个一改占空比就能变吗?要不先试试

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top