请大家帮我看看这个程序为什么出错了

[复制链接]
 楼主| 不戴帽子 发表于 2010-5-7 11:55 | 显示全部楼层 |阅读模式
Unsigned int x,temp;/
Unsigned char tab[3];

Void main()
{

      Left
();

      EA=1;
      ET1=1;
      IT1=1;
While(1)
    {
         If(temp>0)
            {
                  EA=0;
                  Temp=0;
                  Fuzhi();//这个函数为tab数组赋值
                //X=tab[2];
                  Charge();
                    EA=1;
              }
     }
}
Void jiema() interrupt 2
{
Temp=1;//置一一个标志
}
Void Charge()
{

        Switch(X)//
写成Switch(tab[2])就不对了,下面的都不执行,而去执行主函数left()

         {
                Case 1:……  
               Case 2:……

                 Default:break
          }
}
NE5532 发表于 2010-5-7 12:17 | 显示全部楼层
跟踪一下SWITCH里德X是否等于TAB[2]
 楼主| 不戴帽子 发表于 2010-5-7 12:19 | 显示全部楼层
2# NE5532
谢谢您,但是为什么会出现不等于的现象呢?
NE5532 发表于 2010-5-7 12:23 | 显示全部楼层
你先试了再说,一个人要想牛起来,重要的不是什么事情都知道,而是自己掌握方法去找到答案。也许我仔细看你的程序可以找到,但是我不想看,看了给你说对你也没帮助,你自己能找到的话,你就上了个台阶了。

我答问题一般只说方法。
 楼主| 不戴帽子 发表于 2010-5-7 12:24 | 显示全部楼层
2# NE5532
加入一个全局变量X,这个程序是可以执行的,但是不引入X为什么有错误呢?引入X后,在主函数的while(1)中再加入一个函数的话,下边的if里的函数有的时候就执行不到,这又是为什么呢
NE5532 发表于 2010-5-7 12:27 | 显示全部楼层
你没发现你的X是个int型变量?转换了一次呀,我也不知道什么地方有问题,不过你跟踪一下看呢,换我来,我也是这样做。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

44

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部