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

* 106327: 读键的程序为什么不对?

   linda_6000 
linda_6000发表的帖子 

 读键的程序为什么不对?
各位高手请看一看,我的读键的程序为什么返回不了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 请高手加我,本周我全天在线。

发表时间:2007年6月12日17:42:39

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  106330.[详细]有高手说将前面的STATIC去掉,但是我去掉了,还是不好,
摘要:请高手给我一些指点,如有高手有4*4键盘的例子,请发给我。多谢!......(61字)
- [linda_6000][720次] 2007年6月13日

[上一篇帖子]:顶用途:    -:可用于各种二十个点以内的控制系统,可控制气
[下一篇帖子]:求助ds1307不能握手下面是我的I2C的程序,和其他的I2C设备通讯都没有问题,就是唯独和1307