p是28016,pi运算,用Q12进行定标
void PowerU(Uint16 Def_U) //Q13-->-4==4 Q12-->-8==8
{
long temp;
int m;
temp = (long)AD_Result[1];
temp = temp * 6;
Ek_V = (int)(temp>>1); //Ek_V->Q12
Ek_V = Def_U - Ek_V;
SumEk_V = SumEk_V + Ek_V; //SumEk->Q12
temp = (long)Ek_V;
temp = temp * V_P;
Uk_V = (int)(temp>>12); //Uk_V->Q12
temp = (long)SumEk_V;
temp = temp * V_I; //I
12
Uk_V = Uk_V + (int)(temp>>12);
与pwm怎么对应???
if(Uk_V < OCR1AL_MIN)
Uk_V = OCR1AL_MIN;
if(Uk_V > OCR1AL_MAX)
Uk_V = OCR1AL_MAX;
m = Uk_V - EPwm2Regs.CMPA.half.CMPA;
if(abs(m) < OCR1AL_U)
EPwm2Regs.CMPA.half.CMPA = (Uint16)Uk_V;
if(abs(m) > OCR1AL_U)
if(EPwm2Regs.CMPA.half.CMPA > Uk_V)
EPwm2Regs.CMPA.half.CMPA = EPwm2Regs.CMPA.half.CMPA - OCR1AL_U;
else
EPwm2Regs.CMPA.half.CMPA = EPwm2Regs.CMPA.half.CMPA + OCR1AL_U;
}