为什么程序进不了定时中断
时间: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 这个一改占空比就能变吗?要不先试试