ningling_21 发表于 2014-5-3 11:37 
改一下试试
if(j==0X0E)
与全局变量还是局部变量没有关系,对于函数的返回值,我记得是这样:比如j=0x01 ,这个0x01应该是在常量区的,返回的时候返回的是常量的地址,所以不存在返回值无效的情况。我记得的不是很清楚了。但函数返回一个值,是可行的,这个我确定。
对于IF选择上也没有关系,没有记得if () if () 和if () else if()有太大的区别。
我刚才又把程序改了一下:
DDRD=0x0f;
PORTD=0x0f;
delay(1);
key=PIND;
key&=0x0F;
return key;
这样都可以读到正常的PIND值,为什么DDRD=0x0f ,PORTD=0x0f .都是输出了,不是输入了,都可以正常读到。问你另外一个问题:对于这个按键,AVR Mega16内部的上拉电阻有什么用处?
|