新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 智能手機全鍵盤控制器及其編程

        智能手機全鍵盤控制器及其編程

        作者: 時間:2009-09-03 來源:網絡 收藏

        ②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初始化結束*/

        本文引用地址:http://www.104case.com/article/166882.htm


        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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玛多县| 浦北县| 响水县| 林西县| 安义县| 岑溪市| 咸宁市| 嘉义县| 普宁市| 井陉县| 新泰市| 海淀区| 双城市| 五河县| 兴业县| 宣恩县| 盐边县| 马尔康县| 松原市| 通辽市| 府谷县| 澄江县| 永兴县| 新干县| 四子王旗| 饶阳县| 通海县| 耒阳市| 安泽县| 关岭| 江永县| 成安县| 中方县| 和政县| 闽清县| 苍梧县| 林芝县| 克拉玛依市| 湟源县| 临泽县| 焉耆|