同样的一段程序,CCS 和 IAR 编译运行的结果不同?

2019-08-01 16:36发布

同样的一段程序,CCS 和 IAR 编译运行的结果不同?
软件版本:
CCS:  5.2.1.00018
IAR :5.50.2
硬件: MSP-EXP430G2    Launch Pad
IAR编译后,两个灯交替闪烁。
CCS编译后,两个灯 “常亮” ,闪烁的非常快,没有延时
是由于没有进入延时函数?

程序如下:
#include "msp430g2553.h"
#define uint unsigned int

void delay(uint x)
{
    uint a,b;
    for(a=0;a<x;a++)
      for(b=0;b<1000;b++);
}

int main(void)
{
    // Stop watchdog timer to prevent time out reset
    WDTCTL = WDTPW + WDTHOLD;//关闭看门狗
    P1DIR=0x41;//配置两个LED引脚为输出状态
    P1OUT=0x01;//初始化LED状态,LED1亮,LED2灭
    while(1)
    {
            delay(1000);
          P1OUT ^=0x41;//翻转两个LED管脚状态
    }
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
ar_m_cu
1楼-- · 2019-08-02 15:06
使用空操作相关的指令进行延时最容易被优化掉,最好使用定时器延时,准确不容易出错
firstblood
2楼-- · 2019-08-02 17:31
这个的话看下两个编译器的关于该单片机在应用时的设置的吧

一周热门 更多>