kissme 发表于 2012-11-1 18:21:22

关于winavr函数传参问题

最近转用了winavr 遇到了些问题,
我利用函数传递一个值过去进行显示。
可是传递过去后值是乱七八糟的,代码如下
有没有熟悉winavr的帮我看看

我使用 show_num(12345);显示出来的东西乱七八糟
如果在函数里面,直接赋值可以正常运行。
表示参数没有正确传递进去,

void show_num(uint16_t xx){
unsigned char a,b,c,d,e;
//xx=12345; //注:如果我在这里给xx赋值,什么问题都没有,显示很正常,表示下面代码都没有问题。
a=xx%10;    //个位
b=xx/10%10; //十位
c=xx/100%10; //百位
d=xx/1000%10;//千位
e=xx/10000;//万位

if(e){
   goto n5;
   }else{
       if(d){
              goto n4;
              }else{
                  if(c){
                     goto n3;
                     }else{
                           if(b){
                                goto n2;
                                }else{
                                        goto n1;
                                        }
                           }
                  }
       }
n5:
   lcd=num1_table;
   lcd=num1_table;
n4:
   lcd=num1_table;
   lcd=num1_table;
n3:
   lcd=num1_table;
   lcd=num1_table;
n2:
   lcd|=num1_table;
   lcd=num1_table;
n1:
   lcd|=num1_table;
   lcd=num1_table;


}

foxpro2005 发表于 2012-11-1 20:23:18

这结构结构为什么会写成这样。

yklstudent 发表于 2012-11-2 07:53:49

goto都用上了

kissme 发表于 2012-11-5 11:01:46

这是个5位数的数值显示,goto是为了自动删除数值前面的0,
没什么特别的,用了很多年了。只不过是原来在iccavr上很好。在winavr上不行

sunliezhi 发表于 2012-11-5 12:15:21

调用的时候?
页: [1]
查看完整版本: 关于winavr函数传参问题