注册 登录
查看: 382|回复: 5

[其他] 编写小液晶键盘程序时候的问题

[复制链接]
发表于 2014-2-20 18:27:14 | 显示全部楼层 |阅读模式
用KL26编写小液晶键盘程序的时候,小液晶的五个键位连到了C口,采用中断方式进行检测。发现这样一个问题:
不论RIGHT连到哪个键(只试过C口的各个键位,A和D没有试过),开键位中断后,只要当执行LCD_init()和LCD_str(Site_t site, uint8 *Str, uint16 Color, uint16 bkColor)这两个函数中的时候(别的函数还没有试过),就会莫名其妙的不停进入RIGHT键所对应引脚的中断,但是其余的LEFT UP等键就不会出现这个问题,也更换过连线,不是连线的问题。这是怎么回事呢?
当没有注释61、62行的函数时:

在中断里放上断点,上电后点连续运行就会莫名进入中断,即使出来也会再进去:

当注释掉后:

点连续运行,就不会再进入中断了:











本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

 楼主| 发表于 2014-2-20 18:28:59 | 显示全部楼层
按键中断采用下降沿检测,上拉电阻:
port_init(PTC4, ALT1 | IRQ_FALLING | PULLUP );      //RIGHT
回复 支持 反对

使用道具 举报

发表于 2014-2-20 18:57:07 | 显示全部楼层
lqy295 发表于 2014-2-20 18:28
按键中断采用下降沿检测,上拉电阻:
port_init(PTC4, ALT1 | IRQ_FALLING | PULLUP );      //RIGHT

为什么不用我们的按键扫描程序?
检测一下按键跟液晶管脚是否有冲突。由于你用的是你自行编写的按键代码,因此我们也不好判断原因。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-20 19:11:09 | 显示全部楼层
就是仿照1.PORT_KEY里面的编写的呀    你是说调用FIRE_key.c里的函数么?
回复 支持 反对

使用道具 举报

发表于 2014-2-20 19:13:11 | 显示全部楼层
lqy295 发表于 2014-2-20 19:11
就是仿照1.PORT_KEY里面的编写的呀    你是说调用FIRE_key.c里的函数么?

参考 5.GPIO_KEY_TIMEING ,这种方式最稳定。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-2-20 20:01:21 | 显示全部楼层
好的 我去试试 谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部