打印

这一段程序看不明白

[复制链接]
1451|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wyjie|  楼主 | 2013-2-24 11:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AC, ck, ST, Stack, AD
将一些整数转换为浮点数子程序,得到计算占空比要用的常数
JISUAN:LDP #5 ;调谐度由整形转换为浮点
LACL AL
LRLK    AR1,STACK   ;设置 STACK指针
SETC SXM
CALL F$ $ ITOF,AR1 ;A=a×1000
CLRC SXM
MAR *-
LACC *-,16
ADDS *
SACL AL
SACH AH
LRLK AR1,STACK ;A/2000=0.5 a
SETC SXM
LACL #0
SACL *+
LACL #44FAH ;44FA 0000h =2000
SACL *+
LACL AL
SACL *+
LACL AH
SACL *+
CALL F$ $ DIV
MAR *-
LACC *-,16
ADDS *
SACL AL
SACH AH
LACL T3PR_TEMPL
LRLK    AR1,STACK
SETC SXM ;定时器周期寄存器
;的值转换为浮点数
CALL F$ $ ITOF,AR1
CLRC SXM
MAR *-
LACC *-,16
ADDS *
SACL T3PR_TEMPL
SACH T3PR_TEMPH
LACL FCL ;FC值转换为浮点数
LRLK    AR1,STACK
SETC SXM
CALL F$ $ LTOF,AR1
CLRC SXM
MAR *-
LACC *-,16
ADDS *
SACL FCL
SACH FCH
LACL FRL
LRLK    AR1,STACK
SETC SXM   ;FR值转换为浮点数
CALL F$ $ ITOF,AR1
CLRC SXM
MAR *-
LACC *-,16
ADDS *
SACL FRL
SACH FRH
LRLK    AR1,STACK ;N=FC/FR
LACL FRL
SACL *+
LACL FRH
SACL *+
LACL FCL
SACL *+
LACL FCH
SACL *+
CALL F$ $ DIV
MAR *-
LACC *-,16
ADDS *
SACL NL
SACH NH ;N的浮点数
LRLK    AR1,STACK
SETC SXM
SACL *+
SACH *+
CALL F$ $ FTOI
SACL N ;N的整数
LRLK AR1,STACK
SACL *+
LACL NH
SACL *+
LACL #0F5C3H ;40C8F5C3h=6.282=2×3.141
SACL *+
LACL #40C8H
SACL *+
CALL F$ $ DIV
MAR *-
LACC *-,16
ADDS *
SACL NL
SACH NH
RET
;(6)计算占空比子程序
DATIO: LDP #5
LACL I  ;I由整形转换为浮点数
LRLK    AR1,STACK
SETC SXM
CALL F$ $ ITOF,AR1
CLRC SXM
MAR *-
LACC *-,16
ADDS * ;结果保存在 ACC
LRLK AR1,STACK ;i*2*3.14/N
SACL *+
SACH *+
LACL NL
SACL *+
LACL NH
SACL *+
CALL F$ $ MUL
MAR *-
ZALH *-
ADDS *
LRLK    AR1,STACK ;sin(i*2*3.14/N)
SACL *+
SACH *+
CALL _sin ;结果在 ACC
LRLK    AR1,STACK ;0.5a*sin(i*2*3.14/N)
SACL *+
SACH *+
LACL AL
SACL *+
LACL AH
SACL *+
CALL F$ $ MUL
MAR *-
ZALH *-
ADDS * ;结果在 ACC
LRLK    AR1,STACK ;D=0.5+A*sin(i*2*3.14/N)
SACL *+
SACH *+
LACL #0
SACL *+
LACL #3F00H ;3F00 0000h =0.5
SACL    *+
CALL F$ $ ADD
MAR *-
ZALH *-
ADDS * ;结果在 ACC
LRLK AR1,STACK
SACL *+
SACH *+
LACL T3PR_TEMPL
SACL *+
LACL T3PR_TEMPH
SACL *+
CALL F$ $ MUL
MAR *-
ZALH *-
ADDS * ;结果在 ACC
LRLK    AR1,STACK ;CMPR的浮点数转换为整数
SETC SXM
SACL *+
SACH *+
CALL F$ $ FTOI,AR1
CLRC SXM ;结果在 ACC
SACL DATIOL
LDP #5
LACC I
SUB N
BCND NSPWM,GEQ
LACC I
ADD #1
SACL I
B RRET
NSPWM: SPLK #0,I ;断是否是下一个周期
RRET: RET   
PHANTOM:KICK_DOG ;复位WD计数器
RET

相关帖子

沙发
dengdc| | 2013-2-24 11:17 | 只看该作者
汇编啊  早忘了  ……

使用特权

评论回复
板凳
wuhany| | 2013-2-24 11:19 | 只看该作者
不会都看不懂吧,那你得看看TI的DSP汇编命令了。

使用特权

评论回复
地板
jiahy| | 2013-2-24 11:19 | 只看该作者
还好 最后看完了

使用特权

评论回复
5
wyjie|  楼主 | 2013-2-24 11:24 | 只看该作者
估计也没什么收获

使用特权

评论回复
6
wyjie|  楼主 | 2013-2-24 11:24 | 只看该作者
算了,先结贴了吧

使用特权

评论回复
7
sunboy428| | 2013-11-9 23:52 | 只看该作者
打酱油了

使用特权

评论回复
8
黄小俊| | 2013-11-10 10:57 | 只看该作者
路过。。。

使用特权

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

本版积分规则

927

主题

12706

帖子

5

粉丝