3715|11

8

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

初学者问个弱智问题 [复制链接]


#include <msp430x14x.h>

#define uchar unsigned char
#define uint  unsigned int

uchar num[8]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};

void delay( void )
{
  uint i, j;
  for(i = 0; i < 30000; i++)
    for(j = 0; j < 500; j++);
}

void main( void )
{
  uchar z;
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P2DIR = 0XFF;
  while(1)
  {
    for(z = 0; z < 8; z++)
    {
      P2OUT = num[z];
      delay();
    }
  }
}

为什么P2口上的8个LED全亮了?下面的程序为什么能实现流水灯而上面的不行呢?


#include <msp430x14x.h>

#define uchar unsigned char
#define uint  unsigned int

uchar num[8]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};

void delay( uint time )
{
  uint i, j;
  for(i = 0; i < time; i++)
    for(j = 0; j < 500; j++);
}

void main( void )
{
  uchar z;
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P2DIR = 0XFF;
  while(1)
  {
    for(z = 0; z < 8; z++)
    {
      P2OUT = num[z];
      delay(30000);
    }
  }
}


 

最新回复

  的确是这个原因,我没有想到,编译器会这么干的  详情 回复 发表于 2012-5-11 21:35
 
点赞 关注

回复
举报

2002

帖子

24

TA的资源

五彩晶圆(高级)

沙发
 
没看出问题,仿真看看
 
 

回复

5015

帖子

12

TA的资源

裸片初长成(初级)

板凳
 

从表意上讲是一样的啊
 
 
 

回复

4008

帖子

0

TA的资源

版主

4
 
#define uint  unsigned int
是不是这个有问题啊
 
 
 

回复

7219

帖子

192

TA的资源

五彩晶圆(高级)

5
 
费解 为什么呢    表面上一样的
 
 
 

回复

3138

帖子

0

TA的资源

裸片初长成(初级)

6
 

大概是循环次数被编译器优化掉了吧?

 编译器一看你平白无故叫我转30000次,省点劲儿不行吗?——喀嚓,循环宰掉了。

办法1:设置编译器为不优化试试。
办法2:给循环变量加上volatile修饰试试。
 
 
 

回复

22

帖子

0

TA的资源

一粒金砂(中级)

7
 

回复 6楼 仙猫 的帖子

恩啊。赞同六楼同学的观点,编译器自动优化了,再问下楼主:你用的是CCS吧?
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(中级)

8
 

msp430

六楼说得对,是编译器自动把代码优化了,我把优化设置里面的优化选项改成不优化就可以正常运行了,我用的是IAR软件
 
 
 

回复

126

帖子

0

TA的资源

一粒金砂(高级)

9
 
还有这样的,没遇见过
 
 
 

回复

149

帖子

0

TA的资源

纯净的硅(初级)

10
 
办法2:给循环变量加上volatile修饰试试。
 
个人签名理想很丰满,现实很骨感
 
 

回复

12

帖子

0

TA的资源

一粒金砂(初级)

11
 
从表意上讲是一样的啊 !
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(中级)

12
 

原帖由 仙猫 于 2012-5-8 10:13 发表  编译器一看你平白无故叫我转30000次,省点劲儿不行吗?——喀嚓,循环宰掉了。 办法1:设置编译器为不优化试试。办法2:给循环变量加上volatile修饰试试。

 

的确是这个原因,我没有想到,编译器会这么干的

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表