MMOV32 MR0,@_ClatoCpuVar._f32AdVacA,UNC
MUI16TOF32 MR2,@_CputoClaVar._u16AcVoltOffset
MCMPF32 MR0,MR2
MNOP
MNOP
MNOP
MBCNDD IcurrAneg,LEQ ;//NEED TEST MBCNDD-函数调用
MNOP ;如果 MR0 <= MR2 执行IcurrAneg()函数
MNOP
MNOP
MUI16TOF32 MR2,@_CputoClaVar._u16AcVoltOffset
MCMPF32 MR0,MR2
MNOP
MNOP
MNOP
MBCNDD IcurrAneg,LEQ ;//NEED TEST MBCNDD-函数调用
MNOP ;如果 MR0 <= MR2 执行IcurrAneg()函数
MNOP
MNOP
MMOV32 MR2,@_CputoClaVar._f32IacaSampSysa
IcurrAneg:
MMOV32 MR2,@_CputoClaVar._f32IacaSampSysNa
MMPYF32 MR3,MR2,MR1;//(Ia-IasamplesysNb)*IasamplesyNsa
MMOVI32 MR2,#0x38800000 ;1/(2^14)
MMPYF32 MR3,MR2,MR3
MUI16TOF32 MR0,@_CputoClaVar._u16PfcCurrSampOffseta
MMOVI32 MR2,#0x38800000 ;1/(2^14)
MMPYF32 MR3,MR2,MR3
MUI16TOF32 MR0,@_CputoClaVar._u16PfcCurrSampOffseta
MSUBF32 MR3,MR3,MR0;//(Ia-Iasamplesysb)*Iasamplesysa-Ioffset
MMAXF32 MR3,#0.0
MMOV32 @_ClatoCpuVar._f32AcACurr,MR3
MMOV32 @_ClatoCpuVar._f32AcACurr,MR3
关于MBCNDD 使用还是没完全搞清楚,请关以上语句的意思 ,如果 MR0<=MR2 就执行IcurrAneg这个函数么? 如果这个函数执行完成之后 ,是跳出MR0<=MR2 这个判断条件 往下执行? 还是继续判断MR0是否小于MR2 ,如果小于再执行IcurrAneg这个函数? 这个语句相当于C语言的if判断? 还是if_else判断? 另外IcurrAneg这个函数,如何看函数的结尾呢,是否有什么标志? C语言函数完成后都会有大括号--}的 这个语句也没有啊!