STM8电机中的一段汇编,但是看了一下,就是看不明白是什么意思。低码如下:
;********************* PHASE U duty cycle processing ***************************
ld A,(_SINE3RDHARM,Y) ; Get entry from table----这是查正弦表,最大128,把查到的值放入寄存器A中。
ldw X,_bSineMag8 ; Scale According to SineMag---把bSineMag8的值放入X中,那么XH为0,因为bSineMag8为无符号8位。
swapw X---交换X的高位与低位。
mul X,A ; 16-bit Result in X ------无符号乘法8*8,这个不明白,不就是XL*A么,那不就为0啦,我觉得是不是不应该有swapw X这条。
btjt _Phase,#7,nextU ; Phase represents offset in LUT
; jmp if entry is positive, first half of table
cplw X ; Otherwise negate result
incw X ; Increase MSB if 2_s complement of A is 100
nextU:
sraw X
sraw X
sraw X
sraw X
sraw X
sraw X
sraw X
swapw X
ld A,XH
add A,_bOffset
jrnc cond1
incw X
cond1: ld XH,A
ld A,XL
ld 0x5265,A ;TIM1->CCR1H
ld A,XH
ld 0x5266,A ;TIM1->CCR1L |