跳舞的小人破译规则:请教定标及pid输出值与pwm的对应关系 - 28XX系列 - DSP交流网 DSP学习第...

来源:百度文库 编辑:九乡新闻网 时间:2024/05/02 18:01:38
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;  //I12
  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;
}