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

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

?? key.c

?? FREESCALE 16位單片機片MC9S12DG128的鍵盤驅動程序,鍵盤緩沖區大小可設,支持按鍵的快加快減操作
?? C
?? 第 1 頁 / 共 2 頁
字號:


/*$PAGE*/
/*
*********************************************************************************************************
*                                              INCLUDE FILES
*********************************************************************************************************
*/

#include "KEY.H"
#include "IO_Map.H"
#include "TMR.H"
#include "defines.h"

/*
*********************************************************************************************************
*                                            LOCAL CONSTANTS
*********************************************************************************************************
*/

#define KEY_STATE_UP                 1      /* Key scanning states used in KeyScan()                   */
#define KEY_STATE_DEBOUNCE           2
#define KEY_STATE_RPT_START_DLY      3
#define KEY_STATE_RPT_DLY            4

/*
*********************************************************************************************************
*                                            GLOBAL VARIABLES
*********************************************************************************************************
*/

static  INT8U     KeyBuf[KEY_BUF_SIZE];     /* Keyboard buffer                                         */
static  INT8U     KeyBufInIx;               /* Index into key buf where next scan code will be inserted*/
static  INT8U     KeyBufOutIx;              /* Index into key buf where next scan code will be removed */
static  INT16U    KeyDownTmr;               /* Counts how long key has been pressed                    */
static  INT8U     KeyNRead;                 /* Number of keys read from the keyboard                   */

static  INT8U     KeyRptStartDlyCtr;        /* Number of scan times before auto repeat is started      */
static  INT8U     KeyRptDlyCtr;             /* Number of scan times before auto repeat executes again  */

static  INT8U     KeyScanState;             /* Current state of key scanning function                  */

/*
*********************************************************************************************************
*                                       LOCAL FUNCTION PROTOTYPES
*********************************************************************************************************
*/

static  void      KeyBufIn(INT8U code);     /* Insert scan code into keyboard buffer                   */
static  INT8U     KeyDecode(void);          /* Get scan code from current key pressed                  */
static  BOOLEAN   KeyIsKeyDown(void);       /* See if key has been pressed                             */
static  void  KeyScanTask (void *data);                              

/*$PAGE*/
/*
*********************************************************************************************************
*                                INSERT KEY CHARACTER INTO KEYBOARD BUFFER
*
* Description : This function inserts a key character into the keyboard buffer
* Arguments   : code    is the keyboard scan code to insert into the buffer
* Returns     : none
*********************************************************************************************************
*/

static  void  KeyBufIn (INT8U code)
{
                          /* Start of critical section of code, disable ints    */
    if (KeyNRead < KEY_BUF_SIZE) {               /* Make sure that we don't overflow the buffer        */
        KeyNRead++;                              /* Increment the number of keys read                  */
        KeyBuf[KeyBufInIx++] = code;             /* Store the scan code into the buffer                */
        if (KeyBufInIx >= KEY_BUF_SIZE) {        /* Adjust index to the next scan code to put in buffer*/
            KeyBufInIx = 0;
        }

    } 
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                           DECODE KEYBOARD
*
* Description : This function is called to determine the key scan code of the key pressed.
* Arguments   : none
* Returns     : the key scan code
*********************************************************************************************************
*/

static  INT8U  KeyDecode (void)
{
    INT8U code;
    INT8U temp1,temp2;
    temp1 = PTIJ&0xC0;
    temp2 = PTIP&0xBC;
    if (temp1 == 0) 
    {
       
      if(temp2 == 0x04) 
      {
         code = KeyLeft;   
      } 
      else if (temp2 == 0x08) 
      {
         code = KeyUp;  
      }
      else if (temp2 == 0x10) 
      {
         code = KeyDown;  
      }
      else if(temp2 == 0x20) 
      {
         code = KeyRight;  
      }
      else if(temp2 == 0x80) 
      {
         code = KeyEsc;  
      } 
      else 
      {
         code = NoKey;    
      }
        
    } 
    else if(temp2 == 0)
    {
      if(temp1 == 0x40) 
      {
        code = KeyOnOff;  
      }else if(temp1 == 0x80) 
      {
       code = KeyEnter;  
      } else 
      {
         code = NoKey;   
      }
         
    }

     
    
   /* 
		 PPortVaule = PTIP&0xBC;
     switch ( PPortVaule) 
      {
        case 0x04: 
                   code = KeyLeft;
                   break;
      
        case 0x08: 
                   code = KeyDown;
                   break;
      
      
        case 0x10: 
                   code = KeyUp;
                   break;
      
      
        case 0x20: 
                   code = KeyRight;
                   break;
      
      
        case 0x80: 
                   code = KeyEsc;
                   break;
                  
                    
        default:  
                   code = NoKey; 
                   break;
                  
        }  
      

      switch(PTIJ&0xC0) 
      {
        case 0x40: code = KeyOnOff;
                   break;
                  
        
        case 0x80: code = KeyEnter;
                   break;                      
                   
        default:   code = NoKey; 
                   break;
      }
  
   */
  return (code);  
}

 /*$PAGE*/
/*
*********************************************************************************************************
*                                                 GET KEY
*
* Description : Get a keyboard scan code from the keyboard driver.
* Arguments   : 'to'     is the amount of time KeyGetKey() will wait (in number of ticks) for a key to be
*                        pressed.  A timeout of '0' means that the caller is willing to wait forever for
*                        a key to be pressed.
* Returns     : != 0xFF  is the key scan code of the key pressed
*               == 0xFF  indicates that there is no key in the buffer within the specified timeout
*********************************************************************************************************
*/

INT8U  KeyGetKey (void)
{
    INT8U code;
    if (KeyNRead > 0) {                          /* See if we have keys in the buffer                  */
        KeyNRead--;                              /* Decrement the number of keys read                  */
        code = KeyBuf[KeyBufOutIx];              /* Get scan code from the buffer                      */
        KeyBufOutIx++;
        if (KeyBufOutIx >= KEY_BUF_SIZE) {       /* Adjust index into the keyboard buffer              */
            KeyBufOutIx = 0;
        }
        return (code);                           /* Return the scan code of the key pressed            */
    } 
    //2006.07.10 modified.
    else
    {
    	return(0);
    }	
    
}


/*$PAGE*/
/*
*********************************************************************************************************
*                                         FLUSH KEYBOARD BUFFER
*
* Description : This function clears the keyboard buffer
* Arguments   : none
* Returns     : none
*********************************************************************************************************
*/

void  KeyFlush (void)
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美视频精品在线| 一区二区视频在线看| 国产精品三级av| 免费欧美在线视频| 美女视频黄 久久| 91国偷自产一区二区三区观看 | 亚洲va中文字幕| 国产精品夜夜嗨| 欧美日韩精品一区二区在线播放| 久久精品男人的天堂| 久久99精品久久久| 制服.丝袜.亚洲.另类.中文| 综合欧美一区二区三区| 国产高清久久久| 久久久精品日韩欧美| 日本亚洲视频在线| 欧美精品乱人伦久久久久久| 亚洲免费在线观看| 91视频91自| 欧美国产成人精品| 国产麻豆日韩欧美久久| 久久综合视频网| 精品一区二区免费在线观看| 91精品久久久久久久99蜜桃| 图片区日韩欧美亚洲| 欧美少妇xxx| 亚洲成av人片在线观看无码| 91精品1区2区| 性欧美大战久久久久久久久| 欧亚一区二区三区| 亚洲一区二区成人在线观看| 一本一道久久a久久精品| 亚洲视频中文字幕| 91猫先生在线| 亚洲一区二区av电影| 欧美在线观看视频一区二区| 亚洲一区在线视频观看| 欧美色图激情小说| 亚洲国产你懂的| 这里只有精品电影| 久久99国内精品| 久久奇米777| 99久久久免费精品国产一区二区| 欧美国产1区2区| 91免费精品国自产拍在线不卡| 亚洲欧洲成人自拍| 91福利国产成人精品照片| 亚洲国产成人va在线观看天堂| 欧美日韩免费视频| 奇米精品一区二区三区在线观看| 日韩欧美在线123| 国产suv精品一区二区6| 日韩一区在线看| 欧美日韩不卡在线| 免费人成黄页网站在线一区二区 | 国产亚洲欧美在线| 91农村精品一区二区在线| 国产一区福利在线| 中文字幕制服丝袜成人av| 一本大道综合伊人精品热热| 五月综合激情婷婷六月色窝| 2021久久国产精品不只是精品| 成人白浆超碰人人人人| 亚洲成人一区二区在线观看| 久久久久久久久久久电影| 91蜜桃网址入口| 老鸭窝一区二区久久精品| 中文字幕国产一区| 91精品国产色综合久久不卡电影 | 蜜臀av国产精品久久久久| 亚洲国产精品成人综合| 欧美在线观看视频一区二区三区| 国产精品一区一区| 天堂一区二区在线| 国产精品激情偷乱一区二区∴| 欧美一区二区三区在线电影 | 国精产品一区一区三区mba视频 | 欧美性猛交xxxxxxxx| 国产一二精品视频| 亚洲18影院在线观看| 国产精品丝袜黑色高跟| 欧美一区二区三区视频在线| 99久久久无码国产精品| 精品一区二区av| 午夜av电影一区| 亚洲精品日韩一| 国产欧美日韩在线| 欧美精品第一页| 欧美自拍偷拍一区| aaa欧美色吧激情视频| 久久精品国产在热久久| 亚洲不卡在线观看| 亚洲精品高清在线观看| 国产精品免费网站在线观看| 欧美mv日韩mv国产网站app| 欧美日韩一二三区| 99久久国产免费看| 成人精品视频一区| 国产精品伊人色| 国产精品白丝jk黑袜喷水| 免费的成人av| 麻豆一区二区在线| 日日夜夜精品免费视频| 亚洲一二三四在线| 亚洲蜜臀av乱码久久精品| 国产精品欧美精品| 国产精品免费丝袜| 国产精品久久久久久久久免费相片| 国产午夜精品一区二区三区嫩草 | 91精品国产手机| 91精品国产综合久久国产大片| 欧美日韩一区二区三区不卡| 91久久精品一区二区| 在线观看欧美精品| 欧美日精品一区视频| 欧美日韩1234| 日韩精品一区二区三区中文不卡 | 国产精品久久久久久久蜜臀| 欧美国产日产图区| 中文字幕亚洲成人| 一区二区三区中文字幕在线观看| 国产精品美女一区二区三区| 国产精品视频一二三区| 国产精品久久久久一区二区三区共| 一区在线观看视频| 亚洲综合色在线| 图片区小说区区亚洲影院| 麻豆视频观看网址久久| 国产乱妇无码大片在线观看| 成人av手机在线观看| 欧美亚洲一区二区在线| 欧美一区二区三区在线观看| 精品国产免费一区二区三区四区| 久久婷婷综合激情| 综合婷婷亚洲小说| 视频一区欧美日韩| 国产乱理伦片在线观看夜一区| www.爱久久.com| 欧美美女直播网站| 久久午夜免费电影| 夜夜精品视频一区二区 | 亚洲一区二区在线免费看| 午夜不卡av免费| 国产一区二区在线观看视频| 成人丝袜18视频在线观看| 欧美三级欧美一级| 久久久国产一区二区三区四区小说| 国产精品超碰97尤物18| 视频在线观看91| 成人av在线一区二区| 欧美日韩一卡二卡| 欧美激情自拍偷拍| 亚洲bt欧美bt精品| 成人国产精品视频| 欧美欧美欧美欧美首页| 国产精品视频看| 免费不卡在线观看| 日本高清不卡aⅴ免费网站| 欧美第一区第二区| 亚洲综合网站在线观看| 国产盗摄一区二区| 欧美电影在哪看比较好| 国产精品久久久久一区二区三区| 亚洲国产你懂的| 97久久超碰精品国产| 久久久亚洲精品石原莉奈| 五月激情丁香一区二区三区| 99久久婷婷国产综合精品电影 | 欧美一区二区三区在线观看| 成人免费一区二区三区在线观看 | 久久久国产精华| 美腿丝袜一区二区三区| 一本到一区二区三区| 久久久久国产精品厨房| 日本亚洲视频在线| 欧美日韩三级一区二区| 亚洲伦在线观看| 不卡的av中国片| 中文字幕精品一区二区精品绿巨人| 免费在线观看一区| 欧美欧美午夜aⅴ在线观看| 亚洲欧美激情在线| jlzzjlzz亚洲日本少妇| 国产亚洲成aⅴ人片在线观看| 免费在线观看不卡| 91麻豆精品国产91久久久久久 | 国产精品久久看| 国产伦精品一区二区三区视频青涩 | 91精品国产综合久久香蕉麻豆| 亚洲人午夜精品天堂一二香蕉| 高清不卡在线观看av| 国产三级精品视频| 国产激情偷乱视频一区二区三区| 欧美草草影院在线视频| 麻豆精品久久精品色综合| 3d动漫精品啪啪一区二区竹菊| 一区二区三区国产精品| 欧美最猛黑人xxxxx猛交| 亚洲国产欧美一区二区三区丁香婷| 色综合一区二区|