大虾帮帮我。。关于单片机程序问题,一定帮帮我啊
下面是我写的一个子程序(int test),我想通过这个程序产生一个m的值然后在main中判断m的值来做循环,但是程序烧进单片机后,发现好像int test这个程序没有作用,没有顺利产生一个m值来判断,大虾帮我看看这个子程序主题结构有什么问题没有啊,我自己是看了2天了,但应为才入门c所以很困难,谢谢了int test(unsigned int a,unsigned int b)
{
unsigned int i,m;
LED_Sel_Seq(a|0x00);//这是一个送573锁存的子程序,切已经定义了
delayNs(10);
for(i=1;i<9;i++)
if(LED_SEL_D4!=b))//这是另一个送573锁存的子程序,切已经定义了
{
a = a<<1;
b=b>>1;
}
else m=i;
return m;
}
{
unsigned int i,m;
LED_Sel_Seq(a|0x00);//这是一个送573锁存的子程序,切已经定义了
delayNs(10);
for(i=0;i<8;i++)
if(LED_SEL_D4!=b))//这是另一个送573锁存的子程序,切已经定义了
{
a = a<<1;
b=b>>1;
}
return i;
}
这样你试试看....
回复 2# a54344071 的帖子
我想请问一下,现在返回值确实是8怎么回事了,?谢谢了回复 3# bausrpgf999 的帖子
那m还可以在mian中调用吗,现在主要是通过这个得到m的值 返回8是对还是错呢. 如果是8的话,那就说明你的IF判断没有用处!!全部都走else了如下:for(i=1;i<9;i++)
if(LED_SEL_D4!=b))//这是另一个送573锁存的子程序,切已经定义了
{
a = a<<1;
b=b>>1;
}
else m=i;都走这步
上边的IF没有用处看看是不是那里错误了
回复 6# bausrpgf999 的帖子
是不对的,应该是随着a,b改变而改变的一个值,返回值应该在0到8之间,但现在问题就是他不改变这节只返回8,好像中间那个移位程序就没有用。。。 那说明LED_SEL_D4==b成立 不知道你的程序在干什么,凭感觉帮你改一下。
你把else m=i;改成 else return i;
回复 7# a54344071 的帖子
谢谢提醒我去看看电路图,在改改 总结下:看来论坛里面有人在玩嵌入式
不是我一个人在奋斗!
回复 12# lnhaing 的帖子
哈哈大家一起努力吧, 小弟才毕业,现在中国嵌入式市场怎么样啊!!各位大哥 很火,很有钱途[tk05]回复 10# woshiyun 的帖子
谢谢指导, LS,你是在什么环境下做的嵌入式?回复 14# a54344071 的帖子
我也是才入行的,哈哈希望很好吧,不过这是个很有挑战的喔,因为我感觉确实有难度不过我不怕,哈哈回复 17# 界水乘风 的帖子
是什么意思我不是很明白,但我现在工作是这个,以前c学的不是很扎实所以开始很困难,希望大家以后多多指导回复 14# a54344071 的帖子
呵呵是吗!!那我就得努力找工作去了页:
[1]
2
