关于PWM占空比调节的变成问题,有源程序请教!

来源:百度知道 编辑:UC知道 时间:2024/06/03 03:32:57
用C语言,编一段使用按键控制PWM占空比的程序。可现象是占空比总是不断快速改变,按键不能对其进行控制,请问出现了什么问题吗?程序如下:

unsigned int PWM_Data[10]= //PWM占空比数据
{
0x01A5,0x0176,0x0147,0x0118,
0x00EA,0x00BB,0x008C,0x005D,
0x002E,0x01a5
};

int main()
{
INT16U PWM_Data[10];
INT8U Num=0;
InitSys();
while(1)
{
if(Key1==0) //判断是否K1键按下
{
Num++;
Delay10ms(1);
if(Num>=9)
Num=0;
PWM_DA_Percent_change( PWM_Data[Num] ); //改变PWM的值
while(Key1==0); //等待按键抬起
}
}
}

递增,应有极限,不能从0再开始循环。

while(1) {
if(Key1 == 0) //判断是否K1键按下
{
Num++;
Delay10ms(1);
if(Num >= 9)
Num = 9; //我只是改了这一句
PWM_DA_Percent_change( PWM_Data[Num] ); //改变PWM的值
while(Key1 == 0); //等待按键抬起
}
}