关于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;
} 这结构结构为什么会写成这样。 goto都用上了 这是个5位数的数值显示,goto是为了自动删除数值前面的0,
没什么特别的,用了很多年了。只不过是原来在iccavr上很好。在winavr上不行 调用的时候?
页:
[1]