亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? hw_matrixkey.c

?? RK27驅動
?? C
字號:
/******************************************************************/
/*   Copyright (C) 2007 ROCK-CHIPS FUZHOU . All Rights Reserved.  */
/*******************************************************************
File	:  hw_keyboard.c
Desc	:  掃描按鍵消息\接口函數的實現
		  
Author	: huangxinyu
Date	: 2007-07-05
Notes	: 

$Log: hw_matrixkey.c,v $
Revision 1.1.1.1  2008/03/06 13:29:05  Lingzhaojun
no message

Revision 1.1  2007/11/26 14:30:11  Huangxinyu
改變matrixkey目錄

Revision 1.10  2007/11/23 07:32:10  Huangshilin
no message

Revision 1.9  2007/11/07 13:28:05  Huangxinyu
兩個按鍵同時按下問題的修改

Revision 1.8  2007/11/01 01:46:14  Huangxinyu
增加RK2706的兼容性

Revision 1.7  2007/10/24 09:20:06  Huangxinyu
根據LCD管腳沖突情況重新修改陣列按鍵

Revision 1.6  2007/10/20 04:46:31  Huangshilin
for RK2700

Revision 1.5  2007/10/16 04:16:49  Huangxinyu
陣列鍵盤調試完成提交

Revision 1.4  2007/10/15 09:16:37  Huangxinyu
根據RK27提交修改driver

Revision 1.3  2007/10/08 02:38:45  Lingzhaojun
添加版本自動注釋腳本

*********************************************************************/

#include "include.h"
#include "hw_include.h"
#include "hw_matrixkey.h"
#include "hw_gpio.h"
#include "hw_serial.h"

#include "hw_timer.h"

#if (KEY_TYPE == MATRIXKEY)

static  UINT8   gKeyPioState;                                                   /*  用于記錄GPIO口用作keyboard之前的狀態,在反初始化時可恢復 */
// gKeyPortValue[x][y] 的 x 用于記錄上次按鍵和本次按鍵的狀態 , y 用于記錄MatrixKey_COL_1\MatrixKey_COL_2\MatrixKey_COL_3的按下值
UINT8   gKeyPortValue[2][3] = { {0x00,0x00,0x00},{0x00,0x00,0x00} };                /*	用于記錄 按鍵 PIO 的狀態,相應位為高表示按下,相應位為低表示沒有按下或彈起 */
UINT8   gKeyPlayOnState = 0 ;

#if (CHIPTYPE == RK2700)
#define MatrixKey_ROW_1     GPIOPortA_Pin7    
#define MatrixKey_ROW_2     GPIOPortC_Pin6
#define MatrixKey_ROW_3     GPIOPortC_Pin5
#define MatrixKey_COL_1     GPIOPortC_Pin4
#define MatrixKey_COL_2     GPIOPortC_Pin3
#define MatrixKey_COL_3     GPIOPortC_Pin2
#define MatrixKey_COL_PORT      GPIOPortC
#define MatrixKey_COL_SHIFT      2
#define MatrixKey_COL_MASK       0x7
#elif(CHIPTYPE == RK2706)
#define MatrixKey_ROW_1     GPIOPortC_Pin4    
#define MatrixKey_ROW_2     GPIOPortC_Pin5
#define MatrixKey_ROW_3     GPIOPortC_Pin6
#define MatrixKey_COL_1     GPIOPortC_Pin3
#define MatrixKey_COL_2     GPIOPortC_Pin2
#define MatrixKey_COL_3     
#define MatrixKey_COL_PORT      GPIOPortC
#define MatrixKey_COL_SHIFT      2
#define MatrixKey_COL_MASK       0x3
#elif defined(LDK)
#define MatrixKey_ROW_1     GPIOPortA_Pin4    
#define MatrixKey_ROW_2     GPIOPortA_Pin5
#define MatrixKey_ROW_3     GPIOPortA_Pin6
#define MatrixKey_COL_1     GPIOPortA_Pin3
#define MatrixKey_COL_2     GPIOPortA_Pin2
#define MatrixKey_COL_3     GPIOPortA_Pin1
#define MatrixKey_COL_PORT      GPIOPortA
#define MatrixKey_COL_SHIFT      1
#define MatrixKey_COL_MASK       0x7
#else
#define MatrixKey_ROW_1
#define MatrixKey_ROW_2
#define MatrixKey_ROW_3
#define MatrixKey_COL_1
#define MatrixKey_COL_2
#define MatrixKey_COL_3
#define MatrixKey_COL_PORT
#define MatrixKey_COL_SHIFT
#define MatrixKey_COL_MASK
#endif

static UINT8 gMatrixKeyPin[] = {MatrixKey_ROW_1,MatrixKey_ROW_2,MatrixKey_ROW_3,MatrixKey_COL_1,MatrixKey_COL_2,MatrixKey_COL_3};

/**************************************************************************
* 函數描述: 矩陣按鍵初始化
* 入口參數: 無
* 出口參數: 無
* 返回值:   無
***************************************************************************/
void RockKey_PowerOnInit(void)
{
    gKeyPioState = GPIO_GetPortDirection(PIO_KEY);
#if (CHIPTYPE == RK2700)
    // 行掃描配置  
    GPIO_SetPinDirection(MatrixKey_ROW_1, GPIO_OUT);     // 不掃描第0行
    GPIO_SetPinDirection(MatrixKey_ROW_2, GPIO_OUT);
    GPIO_SetPinDirection(MatrixKey_ROW_3, GPIO_OUT);
    GPIO_SetPinDirection(MatrixKey_COL_1, GPIO_IN);
    GPIO_SetPinDirection(MatrixKey_COL_2, GPIO_IN);
    GPIO_SetPinDirection(MatrixKey_COL_3, GPIO_IN);
    GPIO_SetPinLevel(MatrixKey_ROW_1,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_ROW_2,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_ROW_3,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_COL_1,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_COL_2,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_COL_3,GPIO_LOW);
#elif (CHIPTYPE == RK2706)
    // 行掃描配置  
    GPIO_SetPinDirection(MatrixKey_ROW_1, GPIO_IN);    
    GPIO_SetPinDirection(MatrixKey_ROW_2, GPIO_IN);
    GPIO_SetPinDirection(MatrixKey_ROW_3, GPIO_IN);
    GPIO_SetPinDirection(MatrixKey_COL_1, GPIO_IN);
    GPIO_SetPinDirection(MatrixKey_COL_2, GPIO_IN);
    GPIO_SetPinLevel(MatrixKey_ROW_1,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_ROW_2,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_ROW_3,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_COL_1,GPIO_LOW);
    GPIO_SetPinLevel(MatrixKey_COL_2,GPIO_LOW);
#endif
 // 增加單獨PC1口做PlayOn按鍵,設置為輸入
    GPIO_SetPinDirection(GPIOPortC_Pin1, GPIO_IN);

}

/**************************************************************************
* 函數描述: 矩陣按鍵硬件檢測
*           矩陣掃描對于處于十字位置的3鍵不能檢測
* 入口參數: 無
* 出口參數: 無
* 返回值:   無
***************************************************************************/
void RockKeyScanning( void )
{
	UINT8	keys;
	UINT8	press;
	UINT8   i,j;    
	UINT8   pioData;

   /* 
             COL1  COL2  COL3
      ROW1 ----|----|----|---
      ROW2 ----|----|----|---
      ROW3 ----|----|----|---

   */	
   // 行掃描  
#if (CHIPTYPE == RK2700)
  //  for ( i = 0; i < 3; i++ ) // i = 0~2 為行
    for ( i = 1; i < 3; i++ ) // i = 1~2 為行 , 由于第0行GPIOPortA_Pin7和LCD_VSync沖突,暫時不掃描第0行
#elif (CHIPTYPE == RK2706)
    for ( i = 0; i < 3; i++ ) // i = 0~2 為行
#endif
     {    
      
       GPIO_SetPinLevel(gMatrixKeyPin[i],GPIO_HIGH); // 依次設置ROW_1\ROW_2\ROW_3輸出高電平
       GPIO_SetPinDirection(gMatrixKeyPin[i], GPIO_OUT);
    //   USDELAY(5);
       gKeyPortValue[0][i] = ( GPIO_GetPortLevel(MatrixKey_COL_PORT)>>MatrixKey_COL_SHIFT)& MatrixKey_COL_MASK; // gKeyPortValue[0][i]為當前COL_1\COL_2\COL_3管腳狀態
     //  serial_printf("gKeyPortValue[0][%d] = %d \n",i,gKeyPortValue[0][i]);
        //have key chang !
        GPIO_SetPinLevel(gMatrixKeyPin[i],GPIO_LOW);  
        keys = gKeyPortValue[0][i] ^ gKeyPortValue[1][i];    // 準延時     
        GPIO_SetPinDirection(gMatrixKeyPin[i], GPIO_IN); 
        if( keys )
          {   
      //     TR("gKeyPortValue[0][%d] = %d, keys =%d", i,gKeyPortValue[0][i],keys);
            #if (CHIPTYPE == RK2700)
             for( j = 0 ; j < 3 ; j ++ ) // j為列,輸入管腳,感受key按下
            #elif (CHIPTYPE == RK2706)
             for( j = 0 ; j < 2 ; j ++ ) // j為列,輸入管腳,感受key按下
            #endif
                {
                if( keys & (0x01<<j) ) 
                    {
                    if( gKeyPortValue[0][i] & (0x01<<j) ) // 位于當前行j列的按鍵按下
                        press = 1;
                    else
                        press = 0;                 
                    RockKeySendKeyMsg(press, 0 + (i*3+j) );   // keys = (i)*3 + j                
                    }
                }
          gKeyPortValue[1][i] = gKeyPortValue[0][i]; // gKeyPortValue[1][i]保存此次COL_1\COL_2\COL_3管腳狀態供下一次使用
          } 
     }

     // 增加單獨PC1口做PlayOn按鍵, 掃描鍵值暫定為9
     pioData = GPIO_GetPinLevel(GPIOPortC_Pin1); 
     if( pioData == 1)    // 檢測到PlayOn按鍵按下
        {
          if( gKeyPlayOnState == 0)  // 原來是彈起狀態
            {
               gKeyPlayOnState = 1;
               RockKeySendKeyMsg(1, 9);
            }
        }
     else
        {
          if( gKeyPlayOnState == 1)  // 原來是按下狀態
            {
               gKeyPlayOnState = 0;
               RockKeySendKeyMsg(0, 9);
            }
        }
        
     
}

/**************************************************************************
* 函數描述: 矩陣按鍵反初始化
* 入口參數: 無
* 出口參數: 無
* 返回值:   無
***************************************************************************/
void RockKey_PowerOffDeinit(void)
{
    GPIO_SetPortDirection(PIO_KEY,gKeyPioState); // restore key port 
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成av人片在线观看| 91免费观看国产| 久久精工是国产品牌吗| 天堂一区二区在线| 亚洲国产裸拍裸体视频在线观看乱了 | 亚洲免费高清视频在线| 国产精品国产三级国产专播品爱网 | 狠狠色伊人亚洲综合成人| 蜜桃91丨九色丨蝌蚪91桃色| 爽好多水快深点欧美视频| 亚欧色一区w666天堂| 亚洲成人综合视频| 日本视频一区二区| 日本网站在线观看一区二区三区| 日韩和的一区二区| 五月激情综合色| 黄色资源网久久资源365| 狠狠色狠狠色综合日日91app| 国产精品亚洲一区二区三区妖精| 成人手机电影网| 日本韩国欧美一区| 欧美三级中文字幕| 日韩女优制服丝袜电影| 久久久综合网站| 成人欧美一区二区三区在线播放| 亚洲精品视频一区| 日产欧产美韩系列久久99| 精品一区二区三区香蕉蜜桃| 国产成人综合亚洲91猫咪| 色综合色综合色综合色综合色综合 | 国产精品视频你懂的| 亚洲同性gay激情无套| 夜夜嗨av一区二区三区| 日韩精品国产精品| 国产河南妇女毛片精品久久久 | 欧美国产激情二区三区 | 波多野结衣精品在线| 在线免费观看成人短视频| 4438x亚洲最大成人网| 久久色视频免费观看| 国产精品美女久久久久av爽李琼| 一级日本不卡的影视| 开心九九激情九九欧美日韩精美视频电影 | 亚洲一区二区在线免费看| 蜜臀精品久久久久久蜜臀| 成人丝袜高跟foot| 在线播放中文字幕一区| 欧美激情中文字幕一区二区| 亚洲gay无套男同| 国产经典欧美精品| 欧美日韩午夜影院| 欧美国产欧美亚州国产日韩mv天天看完整| 一区二区欧美国产| 国产精品18久久久久久久久| 欧美在线你懂得| 久久精品人人做人人综合| 亚洲国产毛片aaaaa无费看 | 日韩视频在线一区二区| 亚洲欧洲制服丝袜| 久久国产精品99精品国产| 91在线观看污| 2019国产精品| 亚洲成人av资源| 成人黄色电影在线| 日韩精品一区二区三区在线| 伊人开心综合网| 成人黄色小视频在线观看| 日韩写真欧美这视频| 亚洲精品高清在线| 国产成人综合亚洲网站| 日韩免费高清视频| 亚洲福利一二三区| 94-欧美-setu| 国产女人aaa级久久久级| 麻豆精品在线观看| 欧美精品久久天天躁| 亚洲免费在线观看| 丁香另类激情小说| 国产亚洲成年网址在线观看| 美女视频黄久久| 欧美女孩性生活视频| 亚洲日本在线a| 成人不卡免费av| 国产婷婷色一区二区三区四区| 日欧美一区二区| 欧美日韩在线一区二区| 日韩一区中文字幕| av资源站一区| 欧美国产一区二区在线观看| 国产一区二区美女| 精品久久久影院| 激情图片小说一区| 精品久久久久久久久久久久久久久久久 | 国产一区二区三区不卡在线观看 | 一区二区三区四区高清精品免费观看 | 黑人精品欧美一区二区蜜桃| 欧美成人一级视频| 老司机精品视频导航| 欧美一区日韩一区| 日韩电影免费在线观看网站| 在线综合视频播放| 性做久久久久久免费观看欧美| 欧美亚洲综合另类| 亚洲国产精品久久不卡毛片| 欧美最猛性xxxxx直播| 精品中文字幕一区二区小辣椒| 欧美一级国产精品| 久久av中文字幕片| 精品国产伦理网| 精品亚洲aⅴ乱码一区二区三区| 精品国产乱码久久久久久夜甘婷婷 | 亚洲一区二区三区在线看| 欧洲中文字幕精品| 亚洲一二三四区不卡| 欧美三级韩国三级日本三斤 | 91免费看片在线观看| 一区二区三区在线观看网站| 欧美色综合网站| 午夜激情久久久| 精品国产免费一区二区三区香蕉| 久久精品国产成人一区二区三区| 久久亚洲一级片| 成人性生交大片免费| 亚洲天堂免费看| 欧美日韩国产综合草草| 蜜桃av噜噜一区| 中文幕一区二区三区久久蜜桃| 99视频精品全部免费在线| 亚洲最新视频在线观看| 91精品国产免费| 国产麻豆一精品一av一免费| 日韩理论片中文av| 欧美丰满一区二区免费视频| 精品一区二区三区在线播放 | 丁香天五香天堂综合| 日韩理论电影院| 91精品综合久久久久久| 国产一区欧美一区| 亚洲人成人一区二区在线观看| 欧美日韩国产综合一区二区三区| 韩国女主播一区| 一级中文字幕一区二区| 日韩免费观看高清完整版在线观看| 东方aⅴ免费观看久久av| 亚洲激情五月婷婷| 日韩精品一区二区三区蜜臀| eeuss鲁片一区二区三区| 日本中文字幕一区| 国产精品麻豆视频| 日韩一区二区三区观看| 成人晚上爱看视频| 日韩成人免费电影| 欧美国产亚洲另类动漫| 7777精品伊人久久久大香线蕉经典版下载| 国产一区二区h| 亚洲激情欧美激情| 精品国产网站在线观看| 欧美伊人久久久久久午夜久久久久| 久久精品国产秦先生| 一区二区三区日韩在线观看| 久久精品水蜜桃av综合天堂| 欧美日韩精品一区二区三区四区| 丁香亚洲综合激情啪啪综合| 亚洲成a人片在线不卡一二三区| 国产欧美精品一区二区色综合朱莉 | 欧美一区二区三区在线观看| av中文字幕一区| 国产一区视频网站| 天天影视色香欲综合网老头| 中文字幕亚洲不卡| 精品日本一线二线三线不卡| 欧美日韩久久久| 色悠悠久久综合| 国产98色在线|日韩| 琪琪久久久久日韩精品| 一区二区三区高清不卡| 国产亚洲精品资源在线26u| 日韩视频在线永久播放| 欧美在线一二三四区| 91影院在线免费观看| 国产福利精品导航| 日本aⅴ免费视频一区二区三区| 一区二区在线观看视频| 中文字幕va一区二区三区| 欧美精品一区视频| 91精品麻豆日日躁夜夜躁| 在线这里只有精品| 91在线免费看| 97久久超碰国产精品| 国产成人aaa| 国产一区二区福利| 精品写真视频在线观看| 久久99国产精品久久99果冻传媒 | 欧美日韩午夜在线视频| 91精品福利视频| 91网上在线视频| a美女胸又www黄视频久久| 成人久久18免费网站麻豆| 国产成人av一区二区三区在线 | 日韩av网站在线观看|