微波EDA网,见证研发工程师的成长!
首页 > 应用设计 > 消费类电子 > 智能手机全键盘控制器及其编程

智能手机全键盘控制器及其编程

时间:08-08 来源:21IC 点击:
3 读取按键消息

3.1 设置FIFO寄存器

收到硬件中断后,先通过一次写操作设置FIFO寄存器地址:0x00。
I2C_Write(0x70,0x00)://如果写一次FIFO地址之后没有对MAX7359其他控制寄存器的读写,则下次读FIFO寄存器,可不用再写FIFO地址。
I2C_Read(0x71,字节变量);
…… //重复读FIFO直至读到代表
FIFO为空的0x3f,可以没一个最大次数,如256次,如果一次中断后读了256次FIFO里还有没读到0x3f,则软重启软重启过程如下:
I2C_Write(0x70,0x0 1,0x08);
I2C_Write(0x70,0x01,0x88);

3.2 FIFO消息的处理

处理读到的FIFO字节变量(假设变量名为:FIFO_BYTE)后,软件处理方法如下:
(1)将从FIFO收到的非0x3f的字节变量FIFO_BYTE和0x3f取与(AND 0x3f),结果值为按键值(即0至63号键中某一个被按下或释放)。
(2)再将该FIFO_BYTE和0x40取与(AND 0x40),结果为0则说明按键被按下,结果非0则说明按键被释放。如果硬件布线时使用了63号和62号键,FIFO_BYTE处理复杂,请软件设计工程师参考MAX7359编程指南的62号和63号键处理方法。

3.3 长按键处理

通常需要起一个定时器,定时检查还未收到键盘释放信息的键盘按下信息都是何时发生的,如果是当前时间减去按键按下的时间满足长按键时间,就可向上层软件发长按键消息。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top