初学者问个弱智问题

2019-03-24 14:25发布


#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);
    }
  }
}

  此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
woaizhudi
1楼-- · 2019-03-25 13:09
六楼说得对,是编译器自动把代码优化了,我把优化设置里面的优化选项改成不优化就可以正常运行了,我用的是IAR软件
编号洞洞拐
2楼-- · 2019-03-25 14:52
 精彩回答 2  元偷偷看……
brucege888
3楼-- · 2019-03-25 16:17
办法2:给循环变量加上volatile修饰试试。
jsfg
4楼-- · 2019-03-25 16:44
从表意上讲是一样的啊 !
Joyin
5楼-- · 2019-03-25 19:33
 精彩回答 2  元偷偷看……

一周热门 更多>

相关问题

    相关文章