mrcricket 发表于 2015-10-29 10:45:33

microchip的FOC代码和注释完全反了!!!!



   ;; Get qVr1,qVr2,qVr3
          mov.w   _SVGenParm+SVGen_qVr1,Vr1W
          mov.w   _SVGenParm+SVGen_qVr2,Vr2W
          mov.w   _SVGenParm+SVGen_qVr3,Vr3W

   ;; Test Vr1
          cp0       Vr1W
          bra       LT,jCalcRef20       ; Vr1W < 0

   ;; Test Vr2
          cp0       Vr2W
          bra       LT,jCalcRef10       ; Vr2W < 0

   ;; Must be Sector 3 since Sector 7 not allowed
   ;; Sector 3: (0,1,1)0-60 degrees

   ;; T1 = Vr2
   ;; T2 = Vr1
          mov.w   Vr2W,T2W
          mov.w   Vr1W,T1W
          rcall   CalcTimes

   ;; dPWM1 = Ta
   ;; dPWM2 = Tb
   ;; dPWM3 = Tc
          mov.w   TaW,dPWM1
          mov.w   TbW,dPWM2
          mov.w   TcW,dPWM3
          return

jCalcRef10:
   ;; Test Vr3
          cp0       Vr3W
          bra       LT,jCalcRef15       ; Vr3W < 0

   ;; Sector 5: (1,0,1)120-180 degrees
    ;; T1 = Vr1
   ;; T2 = Vr3
          mov.w   Vr1W,T2W
          mov.w   Vr3W,T1W
          rcall   CalcTimes

   ;; dPWM1 = Tc
   ;; dPWM2 = Ta
   ;; dPWM3 = Tb
          mov.w   TcW,dPWM1
          mov.w   TaW,dPWM2
          mov.w   TbW,dPWM3
          return

jCalcRef15:

   ;; Sector 1: (0,0,1)60-120 degrees
   ;; T1 = -Vr2
   ;; T2 = -Vr3
          neg.w   Vr2W,T2W
          neg.w   Vr3W,T1W
          rcall   CalcTimes

   ;; dPWM1 = Tb
   ;; dPWM2 = Ta
   ;; dPWM3 = Tc
          mov.w   TbW,dPWM1
          mov.w   TaW,dPWM2
          mov.w   TcW,dPWM3
          return


注释和代码对不上啊

309579471 发表于 2015-11-2 10:12:36

哪里不对 ?你指出来啊 晕死

mrcricket 发表于 2015-11-11 11:07:10

309579471 发表于 2015-11-2 10:12
哪里不对 ?你指出来啊 晕死

   ;; T1 = Vr2
      ;; T2 = Vr1
         mov.w   Vr2W,T2W
         mov.w   Vr1W,T1W


注释是将Vr2--->T1
但是实现的代码是:mov.w   Vr2W,T2W    (是将Vr2-->T2)

注释和代码对不上啊!
页: [1]
查看完整版本: microchip的FOC代码和注释完全反了!!!!