打印
[STM8]

帮忙看一下这段是什么意思

[复制链接]
2617|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gyc198215|  楼主 | 2010-12-7 14:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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
沙发
jgphu| | 2010-12-7 17:17 | 只看该作者
...........

使用特权

评论回复
板凳
bobo5650| | 2010-12-9 19:18 | 只看该作者
ldw X,_bSineMag8  ; Scale According to SineMag---把bSineMag8的值放入X中,那么XH为0,因为bSineMag8为无符号8位。

你的理解有误,ldw是按小头来算的,也就是说bSineMag8是放在XH,XL是一个未知的数

使用特权

评论回复
地板
gyc198215|  楼主 | 2010-12-11 19:14 | 只看该作者
谢谢LS。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

493

主题

777

帖子

3

粉丝