.ref _LineGain
.ref _VacLineRect
.ref _VacLineScaled
MOVW DP,#(_LineGain)
MOVL XT,@_LineGain ;Q30
MOVW DP,#(_VacLineRect)
QMPYL ACC,XT,@_VacLineRect ; Q30 * Q24 = Q22
LSL ACC,#2
.ref _shoulder
MOVW DP, #(_shoulder)
SUBL ACC, @(_shoulder)
B NO_ZERO, GEQ
MOVB ACC,#0
NO_ZERO:
.ref _VacLineScaled
MOVW DP, #(_VacLineScaled)
MOVL @(_VacLineScaled), ACC
.ref _MaxQ24ref
MOVW DP, #(_MaxQ24ref)
MOVL ACC, @(_MaxQ24ref) ; ACC = 0x00FFFFFF ~ 1 in Q24
MOVW DP, #(_VacLineScaled)
SUBL ACC, @(_VacLineScaled)
.ref _InvVac
MOVW DP, #(_InvVac)
MOVL XAR4,#(_InvVac) ; Net pointer to InvVac (XAR4)
MOVL *XAR4,ACC ; Write to InvVac
.ref _InvSineComp
MOVW DP, #(_InvSineComp)
MOVL XAR2,#(_InvSineComp) ; Net pointer to InvSineComp (XAR2)
.ref _CompAmpltd
MOVW DP, #(_CompAmpltd)
MOVL XT,*XAR4 ; XT = InvVac
QMPYL ACC,XT,@_CompAmpltd ; ACC (Q22) = InvVac (Q24) * CompAmpltd (Q30)
LSL ACC,#2 ; Q24
MOVL *XAR2,ACC ; Write to InvSineComp
红色的字体什么意思啊?ACC减shoulder不等于零时跳转,等于0时把0写入ACC
2018-11-5 12:01:35
GEQ的意思是Greater Then Or Equal To
也就是说ACC大于或等于shoulder时跳转
GEQ的意思是Greater Then Or Equal To
也就是说ACC大于或等于shoulder时跳转
举报