导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→读键的程序为什么不对?[linda_6000]

 *第48991篇: 读键的程序为什么不对?

  
楼 主:linda_6000 2007年6月12日17:42
 读键的程序为什么不对?
各位高手请看一看,我的读键的程序为什么返回不了0;

unsigned char GET_key() 
{
 static unsigned char data l20070610; 
 
 ET0=0;
 _nop_();
 l20070610=key_OK_data; 
 key_OK_data=0;  //是在定时器0中赋值的
 
 ET0=1;
 return l20070610;
}
我是在定时器0中20MS进行一次读键的操作,在去抖动后将值给key_OK_data;
而key_OK_data,只在这个程序中清0,但是在我读一次键,没有按其它键的时候
如果再一次读这个程序,还是回来原来的键值,不是0,我不知道为什么?
如果在RETURN处加一个是不是值为0的IF语句判断后会好一些。
这是怎么回事。
这是我的定时器0的函数定义:
void timer0() interrupt 1 using 0
内中函数是十分简单的不传上来了。
其中用到的全局变量定义如下:
static unsigned char idata key_OK_data;

我是这样使用的:
                           do
  {
   kk=GET_key();
  }while(!kk);
但是在我第一次按键后,第二个键没有铵下时,KK也会回来原来的值,使我的程序不稳定
这是为什么,请高手指教,小女多谢了!

我的QQ:772159495 请高手加我,本周我全天在线。

  
2楼:linda_6000 2007年6月13日08:47
 有高手说将前面的STATIC去掉,但是我去掉了,还是不好,
请高手给我一些指点,如有高手有4*4键盘的例子,请发给我。多谢!

>>>>>>对该主题发表你的看法

本主题贴数2,分页: [第1页]


[上一篇主题]:敬请高手解答LPC2131 I2C存储器问题

[下一篇主题]:求助ds1307不能握手