一般用汇编的Q格式都是截尾舍人,为了提高精度可以向上舍人,但我觉得下面的精度处理有些不对,程序中屏蔽了高位,但减的比留下的最大值都大,这不就不管用了么(肯定会跳)。不知我的看法对么,大侠们怎么看,小弟盼高手指点。下面是三相异步电机中的电流模型的 一部分,已经处理到_cur_error=_cur_error+_kr*(_isd-_imr), _cur_error的初值是0.
_kr 电流模型积分常数 _k 速度与角度的变换常数 _cur_error 电流模型量化误差累计寄存器一 程序为 current_model: lacc _isd sub _imr sacl _foc_temp lt _foc_temp mpy _kr pac clrc SXM and #07fffh add _cur_error sacl _cur_error sub #32768 blz no_limit1 sacl _cur_error setc SXM pac sach _foc_temp,1 lacc _foc_temp add #1 sacl _foc_temp add _imr sacl _imr bcnd i_mrnotzero,neq lacc #0 sacl _foc_temp b i_mrzero no_limit1: setc SXM pac sach _foc_temp,1 lacc _foc_temp add _imr sacl _imr bcnd i_mrnotzero,neq lacc #0 sacl _foc_temp b i_mrzero |