This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430G2553:组装/C

Guru**** 2573695 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/667365/ccs-msp430g2553-assembly-c

部件号:MSP430G2553

工具/软件:Code Composer Studio

您好,

如果我对以下代码错误,请更正我,我尝试将以下代码从汇编转换为C

DelayTenths:

push.w R4

JMP LoopTest

Outterloop:

MOV.w #Delayloops,R4

jnz Delayloop

决定 R12

循环测试:

cmp.w #0,R12

jnz 外环

弹出式,带R4

,RET 

这是我提出的。  我希望得到一些反馈。

谢谢你。

#include <stdio.h>

int main ()
{
int outreloop,delayloop;
outreloop =5;

while ( outreloop >0)
{
for ( delayloop =1;delayloop >0; delayloop--)
{
delayloop---;
}
outerloop---
;}}

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好Edgar:

    对于过帐代码,请使用高级选项卡以正确设置代码格式。 进入高级发布菜单后,单击</>符号发布代码,以便Web界面可以正确格式化代码。 为了反映这一变化,我修改了您在上面的帖子。

    我相信你的转化通过了"眼睛测试",但如果你只是想延迟一定数量的周期,我们确实提供了一种内在功能。 __delay_cycles( x ),其中x是要延迟的周期数。 当谈到编译器中的优化设置时,请注意延迟周期内在过程和上面的循环。编译器可能会将这两个循环视为无意义的循环,并将其优化。 如果希望获得特定的时间安排,通常更好:

    • a)为相应的HW操作设置中断
    • B)轮询HW或SW标志以进行操作
    • c)设置一个计时器以中断相应的计时