打印
[ZLG-MCU]

看看zlg7290.....怎么回事?

[复制链接]
1696|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tonney|  楼主 | 2007-9-4 00:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看看7290
按一个按键后读到的数据,有2个!采用下降沿边沿触发,中断置标志,主循环查询的方法!得到这样的数据,其中大于0为正常按键,可是也得出0键值!一般采用什么方法避免,只是用软件排除0?
---------------------------------------
01 00 02 00 03 00 04 00 05 00 06 00 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 00 08 08 08 08 08 10 10 10 10 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0E 00 0D 00 0D 00 0C 00 0B 00 0A 00 09 00 09 00 01 00 02 00 03 00 04 00 05 00 06 00 07 08 08 10 07 0F 0E 00 06 00 0D 00 0C 00 04 00 03 00 0B 00 0C 00 04 00 05 00 0E 00 07 08 10 0F 0E 00 06 00 0D 00 05 00 04 00 0C 00 0B 00 03 00 0A 00 02 00 03 00 04 00 05 00 06 00 
-------------------
我发现这个症状了,按下去的时候读出来是正确的数据,再放手弹起来时候,由于机械震动问题,有产生一个下降沿,引发中断,而在主程序中再查询时候,此时已经松开按键,所以读出为0.可是在中断中加了延时后再去读取键值,却不能减少这种情况的发生,反而丢失了一些键值!

void   __irq IRQ_EX0(void)
{
    key_flag=1;
    DelayNS(0x2);        
    EXTINT=8;
   VICVectAddr = 0x00;                  // 中断处理结束
}
  
-----------------
可是当用低电平中断时候却更糟糕,读出来都是0值.....

相关帖子

沙发
LPC900| | 2007-9-4 08:13 | 只看该作者

请参考ZLG网站上ZLG7290的Demo程序

使用特权

评论回复
板凳
tonney|  楼主 | 2007-9-4 09:07 | 只看该作者

DEMO程序...

就是用了DEMO程序的驱动.......哎!
能够数码管了,可是读键值不行

使用特权

评论回复
地板
tonney|  楼主 | 2007-9-4 09:35 | 只看该作者

zlg7290bs和zlg7290cs有什么不同?

同样的程序,zlg7290bs能读出2个键值,分别是正确的键值和0键值.
而zlg7290cs只能读出0键值....................
能说说为什么这样么?我用LPC2214的I2C接口,改了通信速率和延时都不行.....

使用特权

评论回复
5
zusen| | 2007-9-7 11:30 | 只看该作者

7290 的中断抖动相当的利害

中断到来后,延时后再读按键的值吧

使用特权

评论回复
6
qfsun| | 2007-10-26 14:17 | 只看该作者

1

我也遇见过这种问题,进一步试验发现有的按键正常。产生抖动的按键表现和功能键一致,一次按键能触发2次中断,所以第二次读出来必然是0。估计板子的问题,8和16键正常!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

17

帖子

0

粉丝