按你做的这个,开始当count第一次达到100,LED=1;已经输出了10ms,但是此时count=0,而PWM=10,LED=0,再过count再计数10次,也就是过了1ms,而PWM是11,count又计数超过了11则LED=1;那么LED维持低电平只有1ms多点,所以不行;
其实一个count就能实现占空比了,(去掉主程序里的PWM那段)在定时器中断里这么改
#define peroid 20000////周期值
#define PWMH 10000///高电平宽度
count++;
if(count<peroid)
{
if(count==PWMH)
LED=1;
else
LED=0;
}
else
count=0;