首 页文档资料下载资料维修视频包年699元
请登录  |  免费注册
当前位置:精通维修下载 > 文档资料 > 家电技术 > 维修教程知识 > 电子制作
智能手机全键盘控制器及其编程
来源:本站整理  作者:佚名  2009-09-03 12:23:17




    ②MAX7359初始化MAX7359初始化过程如下(假设MAX7359设置I2C地址的AD0引脚接地,将MAX7359的I2C读/写地址设为Ox71/0x70);
    /*MAX7359初始化开始*/
    I2C_Write(0x70,0x01,0x08); //关断,开始初始化
    I2C_Write(0x70,0x02,0x01); //10 ms去抖,可调
    I2C_Write(0x70,0x03,0x01); //按键消息FIFO非空则触发中断
    I2C_Wirte(0x70,0x04,0); //防止错误触发GPIO
    I2C_Write(0x70,0x05,0); //关闭自动重复功能
    I2C_Write(0x70,0x06,0); //关闭自动关断功能,可根据需要打开自动关断功能,关断前的等待时间可设。
    I2C_Write(0x70,0x01,0x88); //启动器件正常功能
    /*MAX7359初始化结束*/


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

上一页  [1] [2] [3]  下一页

关键词:

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分)

推荐阅读

图文阅读

热门阅读

Copyright © 2007-2017 down.gzweix.Com. All Rights Reserved .
页面执行时间:111,855.50000 毫秒