用ADC1的两个通道来分别采集电位器和电流,还有个LED闪烁的程序,但是我感觉led灯闪烁程序的存在严重影响到采集速度,AD_Chan和led灯的程序冲突。
由于要使用电位器调节电机速度,想了半天没找到合适的处理办法
程序如下:
}[mw_shl_code=c,true] while (1)
{
if(ADC1->CSR&0X80)
{
ADC1_ClearFlag(ADC1_FLAG_EOC);
Conversion_Val = ADC1_GetConversionValue();
if(AD_Chan==9)
{
if(Conversion_Val<MINVALUE)
outpwm=MINVALUE;
else if(Conversion_Val>MAXVALUE)
outpwm=MAXVALUE;
else
outpwm=Conversion_Val;
}
else if(AD_Chan==19)
{
if(Conversion_Val>ADI_ini)
Conversion_Val=Conversion_Val-ADI_ini;
else Conversion_Val=0;
if(Conversion_Val>CUR_MAX)
Error_count++;//过流次数增加
else Error_count=0;
if(Error_count>=NumErr&&FaultF==0) //达到过流次数要求,认为过流故障
{
FaultF=1;
Error_count=0;
}
}
AD_Chan++;
if(AD_Chan>=20)AD_Chan=0;
//采集20次为一次循环,前10次采集电位器电压,后10次采集电流
if(AD_Chan==0)ADC_Init_SP();//电位器采集配置
else if(AD_Chan==10)ADC_Init_AI();//电流采集配置
ADC1_StartConversion();//启动Ad转换
}
if(FaultF==1)
{
PWM_A_OFF;
PWM_B_OFF;
PWM_C_OFF;
}
for(tem_c=0;tem_c<60000;tem_c++);//延时时间
GPIO_WriteReverse(GPIOA,GPIO_PIN_3);//PA3指示灯反转
}
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>