void InterruptTimer1() interrupt 3
{static bit dir = 0;
static unsigned char index = 0;
unsigned char code table[13] = { //占空比調整表5, 18, 30, 41, 51, 60, 68, 75, 81, 86, 90, 93, 95}
TH1 = T1RH; //重新加載 T1 重載值TL1 = T1RL;
AdjustDutyCycle(table[index]); //調整 PWM 的占空比if (dir == 0) //逐步增大占空比{
index++;
if (index >= 12)
{
dir = 1;
}
}
else //逐步減小占空比{
index--;
if (index == 0)
{
dir = 0;
}
}
這個動態調整dc占空比的話,里面那個dir第一次進來的時候=0 ,第二次為1, dir又為0 ,這個占空比不就永遠只在兩個數之間循壞了?
|