guanjianguo 发表于 2008-12-23 10:38:17

为什么全局变量不能直接传递给函数使用?

 
 
 u8  step, yh, xl;
 u16 change;
 
 extern void xs_1p_hz(u8 yn,u8 place, u16 *nm); 
 extern void xs_ss_u16(u8 place, u8 ss, u16 n);
 
////////////////////  目录光标下移键  //////////////////////////
void key1_2()   //  目录光标下移键
{ u16 nm;  // 放汉字内码
  switch(yh)
    { case 2:
        { yh=6;  // 选中第6行,高亮显示
          nm='确'; nm='认';   nm=0;  nm=0;  nm=0;    nm=0;   nm=0;    nm=0;
          xs_1p_hz(yh, 6, nm); // 第6排 显示8个汉字
          break;
        } 
      case 6:
        { yh=7;  //  选中第7行,高亮显示
          nm='退'; nm='出';   nm=0;  nm=0;  nm=0;    nm=0;   nm=0;    nm=0;
          xs_1p_hz(yh, 7, nm); // 第6排 显示8个汉字  
          break;
        }
      default:
        { yh=2; //  显示第2行数字,高亮显示 选中的位
          xs_ss_u16(2, xl, change); // 第2排 显示4个数字
          break;
        }
    }
}
 
执行上面的函数后,全局变量yh, xl 的值 都变了.
 
 为什么全局变量不能直接传递给函数使用?
  
以前我IAR for MSP430都很好用的!!!!!  用IAR442A就不行了!!!!!!!!!!
 
 
 
 

萧星-96138 发表于 2008-12-23 12:24:41

RE:为什么全局变量不能直接传递给函数使用?

楼主的意思是?具体是哪里有问题呢?

guanjianguo 发表于 2008-12-23 14:05:38

RE:为什么全局变量不能直接传递给函数使用?

2楼楼主,
执行上面的函数后,全局变量yh, xl 的值 都变了.
且好像进入了hard fault异常处理

为什么全局变量不能直接传递给函数使用?
   
以前我IAR for MSP430都很好用的!!!!!用IAR442A就不行了!!!!!!!!!!

zangdianjun 发表于 2008-12-24 11:12:56

回复:为什么全局变量不能直接传递给函数使用?

我的情况和楼主很类似啊,这个程序好像是液晶显示?
我是在用开发板练习程序呢,不知道楼主用的是哪款啊?

萧星-96138 发表于 2008-12-24 11:22:08

RE:为什么全局变量不能直接传递给函数使用?

yh, xl 的值都变了? 我们给他赋值他也应该不变吗? 还是变化不是你想要的变化?

ssrwork 发表于 2008-12-24 12:04:21

RE:为什么全局变量不能直接传递给函数使用?

我觉得问题在函数声明.你传的yh和x是数组,最好在函数里用指针吧.
页: [1]
查看完整版本: 为什么全局变量不能直接传递给函数使用?