while(1)
{
adcx=Get_Adc(ADC_CH0);
TIM3->CCR2=ccr;
LCD_ShowNum(156,130,adcx,4,16);//显示ADC的值
temp=(float)adcx*(3.3/4096);
adcx=temp;
LCD_ShowNum(156,150,adcx,1,16);//显示电压值
if(adcx<2.0)
{
ccr++;
if(ccr>=378)
{
ccr--;
}
}
if(adcx>2.0)
{
ccr--;
if(ccr<=90)
{
ccr++;
}
}
if(adcx==2.0)
{
ccr=ccr;
}
LCD_ShowNum(156,150,adcx,1,16);
temp-=adcx;
temp*=1000;
LCD_ShowNum(172,150,temp,3,16);
delay_ms(5);
}
原子哥,上面的程序是AD采样的部分程序,当采样电压小于2.0v(比较电压)时,增大PWM占空比,当采样电压大于2.0时,减小PWM占空比。现在的问题时采样电压没有和比较电压2.0V进行比较;而是和3.01V进行比较,当采样电压大于3.01时,减小PWM占空比,当采样电压小于3.01V时,增大了PWM占空比。我不知道为什么程序会自动和3.01V进行比较,3.01V我都没有设置啊。原子哥,麻烦你看看,我都卡几天了,,,这是怎么了 |