PWM关断后还有开关管输出还有1.2V的电压存在,这是什么问题呢,怎么也想不通,大侠们帮忙分析下
源程序参考下,这段程序是三相直流无刷电机的开环启动,
switch(Step)
{
case 0: // AB
PWM0_L=0; PWM2_L=0; //
PWM1_OUT_0();PWM2_OUT_0();PWM0_NORMAL();
CCAP0H = PWM_Value; PWM1_L=1; // 打开A相的高端,B相低端
//SendData(0xAB);//发送到串口测
ADC_CONTR = 0XED; // 选择P1.5作为ADC输入 即c相电压
CMPCR1=0X8C;
break;
case 1: // AC
PWM0_L=0; PWM1_L=0; // 打开C相的低端
PWM1_OUT_0();PWM2_OUT_0();PWM0_NORMAL();
CCAP0H = PWM_Value; PWM2_L = 1; // 打开A相的高端
ADC_CONTR = 0XEC; // 选择P1.4作为ADC输入 即B相电压
CMPCR1=0X8C;
//SendData(0xAC);//发送到串口测
break;
case 2: // BC
PWM0_L=0; PWM1_L=0;
PWM0_OUT_0();PWM2_OUT_0();PWM1_NORMAL(); // 打开B相的高端
CCAP1H = PWM_Value; PWM2_L = 1; // 打开C相的低端
//SendData(0xBC);//发送到串口测
ADC_CONTR = 0XEB; // 选择P1.3作为ADC输入 即A相电压
CMPCR1=0X8C;
break;
case 3: // BA
PWM2_L = 0; PWM1_L=0;
PWM0_OUT_0();PWM2_OUT_0();PWM1_NORMAL(); // 打开B相的高端
CCAP1H = PWM_Value; PWM0_L=1; // 打开A相的低端
//SendData(0xBA);//发送到串口测
ADC_CONTR = 0XED; // 选择P1.5作为ADC输入 即c相电压
CMPCR1=0X8C;
break;
case 4: // CA
PWM1_L=0; PWM2_L=0;
PWM0_OUT_0();PWM1_OUT_0();PWM2_NORMAL();// 打开C相的高端
CCAP2H = PWM_Value; PWM0_L = 1; // 打开A相的低端
//SendData(0xCA);//发送到串口测
ADC_CONTR = 0XEC; // 选择P1.4作为ADC输入 即B相电压
CMPCR1=0X8C;
break;
case 5: // CB
PWM0_L=0; PWM2_L=0;
PWM0_OUT_0();PWM1_OUT_0();PWM2_NORMAL(); // 打开C相的高端
CCAP2H = PWM_Value; PWM1_L = 1; // 打开B相的低端
//SendData(0xCB);//发送到串口测
ADC_CONTR = 0XEB; // 选择P1.3作为ADC输入 即a相电压
CMPCR1=0X8C;
break;
default:
break;
}
|