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

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

?? kbd_drv.c

?? 源碼程序包
?? C
字號:
/*C**************************************************************************
* NAME:         kbd_drv.c
*----------------------------------------------------------------------------
* Copyright (c) 2003 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      snd1c-refd-nf-4_0_3      
* REVISION:     1.10     
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the keypad driver routines
*
* NOTES:
* Driver Configuration:
*   - KBD_EXIT_PD in config.h define as:
*      TRUE:  to allow exit of power down by keyboard
*      FALSE: to disallow exit of power down by keyboard
*   - LOCK_ROW in config.h
*   - KEY_LOCK in config.h
* Global Variables:
*   - gl_kbd_lock in bdata space
*****************************************************************************/

/*_____ I N C L U D E S ____________________________________________________*/

#include "config.h"                         /* lib configuration header */
#include "kbd_drv.h"                        /* Keyboard driver definition */


/*_____ M A C R O S ________________________________________________________*/


/*_____ D E F I N I T I O N ________________________________________________*/

static  bdata   bit     gl_kbd_lock;

/*_____ D E C L A R A T I O N ______________________________________________*/

static  void    kbd_set_prio (Byte);
static  void    kbd_install (void);


/*F**************************************************************************
* NAME: kbd_init
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Keyboard initialisation function
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
* ram/xram:
* cycle:
* stack: 
* code:
*****************************************************************************/
void kbd_init (void)
{
  P_KBD |= MSK_COL;             /* all columns inactive */
  gl_kbd_lock = (!LOCK_ROW);    /* Lock Key decoding */
  #if KBD_EXIT_PD
  Kbd_enable_pd_exit();         /* enable keyboard Power-Down exit */
  kbd_set_prio(KBD_PRIO);
  #endif
  kbd_install();
}


/*F**************************************************************************
* NAME: kbd_install
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Keyboard IT and columns mask init
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
* ram/xram:
* cycle:
* stack: 
* code:
*****************************************************************************/
void kbd_install (void)
{
  if (gl_kbd_lock)
  {
    KBCON = KB_LCK;
    P_KBD &= MSK_LCK;
  }
  else
  {
    KBCON = KB_STD;
    P_KBD &= MSK_STD;
  }
  KBSTA = KBSTA;                /* dummy read for clearing pending interrupt */

  #if KBD_EXIT_PD
  Kbd_enable_int();             /* enable or re-enable the kbd interrupt */
  #endif
}


/*F**************************************************************************
* NAME: kbd_set_prio
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Set the keyboard interface priority interrupt
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
* ram/xram:
* cycle:
* stack: 
* code:
*****************************************************************************/
#if KBD_EXIT_PD
void kbd_set_prio (Byte priority)
{
  if ((priority == 1) || (priority == 3))     /* set LSB priority bit */
  {
    IPL1 |=  MSK_EKB;
  }
  if ((priority == 2) || (priority == 3))     /* set MSB priority bit */
  {
    IPH1 |= MSK_EKB;
  }
}
#endif


/*F**************************************************************************
* NAME: kbd_decode
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*   Decoded key pressed
*----------------------------------------------------------------------------
* PURPOSE: 
*   Decode the key that generated an IT
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*----------------------------------------------------------------------------
* REQUIREMENTS:
* ram/xram:
* cycle:
* stack: 
* code:
*****************************************************************************/
Byte kbd_decode (void)
{
Byte key;

  if (gl_kbd_lock)
  {
    gl_kbd_lock = FALSE;
    kbd_install();
    return (KEY_LOCK);
  }
  else
  {
    P_KBD |= MSK_COL;           /* all columns inactive */
 
    /* COL3 = 0;                /* COL3 test (always 0) */
    key = (P_KBD & MSK_PKB);
    if (key != NK_COL3)
    {
      if (key == KEY_LOCK)
      {
        gl_kbd_lock = TRUE;     /* signal key locked */
      }
      kbd_install();
      return (key);
    }

    COL2 = 0;                   /* COL2 test */
    key = (P_KBD & MSK_PKB);
    if (key != NK_COL2)
    {
      kbd_install();
      return (key);
    }

    COL1 = 0;                   /* COL1 test */
    key = (P_KBD & MSK_PKB);
    if (key != NK_COL1)
    {
      kbd_install();
      return (key);
    }
  
    COL0 = 0;                   /* COL0 test */
    key = (P_KBD & MSK_PKB);
    if (key != NK_COL0)
    {
      kbd_install();
      return (key);
    }
  }
}


/*F**************************************************************************
* NAME: kbd_int
*----------------------------------------------------------------------------
* PARAMS:
*
* return:
*----------------------------------------------------------------------------
* PURPOSE: 
*   Keyboard interrupt function
*----------------------------------------------------------------------------
* EXAMPLE:
*----------------------------------------------------------------------------
* NOTE:
*   This isr is called when a key is pressed to get out power-down Interrupt
*   is re-enable in the install routine
*----------------------------------------------------------------------------
* REQUIREMENTS:
* ram/xram:
* cycle:
* stack: 
* code:
*****************************************************************************/
#if KBD_EXIT_PD
Interrupt(kbd_int (void), IRQ_KBD)
{
  Kbd_disable_int();              /* disable interrupt */
}
#endif



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人国产免费视频| 成人网在线免费视频| 国产色产综合色产在线视频| 国产蜜臀97一区二区三区| 国产精品综合在线视频| 天天做天天摸天天爽国产一区| 亚洲色图一区二区三区| 国产精品久久久久四虎| 亚洲欧美经典视频| 亚洲午夜电影在线观看| 午夜视频一区二区三区| 成人深夜视频在线观看| 日韩丝袜美女视频| 国产亚洲欧美一级| 青娱乐精品在线视频| 看国产成人h片视频| 国产精品1区2区3区| 日韩欧美一级片| 久久精品夜夜夜夜久久| 免费成人在线播放| 欧美精品一卡两卡| 精品国产乱码久久久久久免费 | 国产精品私人自拍| 国产亚洲一区二区三区四区| 亚洲午夜在线观看视频在线| 91美女在线视频| 欧美高清视频一二三区 | 制服丝袜日韩国产| 精品国产制服丝袜高跟| 日韩av一区二区三区四区| 国产曰批免费观看久久久| 99久久亚洲一区二区三区青草| 欧美日韩在线免费视频| 欧美电影免费观看完整版| 天天影视涩香欲综合网| 欧美久久高跟鞋激| 日韩高清中文字幕一区| 88在线观看91蜜桃国自产| 日韩影院精彩在线| 成年人网站91| 成人欧美一区二区三区1314| 麻豆精品精品国产自在97香蕉| 不卡在线视频中文字幕| 国产精品久久777777| 色伊人久久综合中文字幕| 91精品国产综合久久久久久| 秋霞电影网一区二区| 精品久久久久久久久久久久久久久久久| 国产精品久久毛片| 91蝌蚪国产九色| 亚洲国产日日夜夜| 欧美卡1卡2卡| 亚洲成人自拍网| 亚洲国产视频直播| 91精品国产综合久久福利软件| 国产精品免费免费| 色综合久久久久久久| 免费高清视频精品| 欧美国产日韩在线观看| 日本视频一区二区三区| 国产亚洲精品7777| 91蜜桃传媒精品久久久一区二区| 亚洲电影激情视频网站| 精品日韩欧美在线| 91免费看`日韩一区二区| 午夜日韩在线电影| 亚洲国产精品精华液2区45| 91久久精品一区二区三| 亚洲人成伊人成综合网小说| 欧美久久久久久久久中文字幕| 激情文学综合网| 欧美大片一区二区| 99精品久久只有精品| 日韩av网站在线观看| 中文字幕视频一区二区三区久| 欧美剧在线免费观看网站| 国产·精品毛片| 国产精品视频在线看| 欧美日韩美少妇| 日本色综合中文字幕| 综合在线观看色| 日韩精品一区二区三区中文精品| 波多野结衣的一区二区三区| 亚洲欧洲成人精品av97| 成人激情电影免费在线观看| 日韩有码一区二区三区| 亚洲美女偷拍久久| 久久久亚洲精品石原莉奈| 国产成人啪免费观看软件| 中文字幕免费不卡在线| 91精品国产欧美一区二区成人| 99久久777色| 国产成人啪免费观看软件| 麻豆国产欧美一区二区三区| 亚洲国产成人av网| 中文字幕精品在线不卡| 精品国产亚洲在线| 在线综合+亚洲+欧美中文字幕| 国产精品一区二区无线| 日本不卡123| 婷婷国产在线综合| 亚洲激情五月婷婷| 欧美日韩高清在线| 欧美在线三级电影| 另类小说综合欧美亚洲| 99久久精品国产毛片| 韩国中文字幕2020精品| 欧美96一区二区免费视频| 日韩精品一级二级| 最新热久久免费视频| 国产精品视频一二| 国产精品污网站| 中文字幕精品—区二区四季| 欧美国产丝袜视频| 国产精品污www在线观看| 国产精品素人视频| 综合激情网...| 亚洲精品国产无套在线观| 亚洲人成小说网站色在线| 亚洲欧美日韩精品久久久久| 亚洲精品一二三四区| 亚洲永久精品国产| 久久天堂av综合合色蜜桃网| 在线这里只有精品| 在线免费观看视频一区| 色噜噜久久综合| 欧美午夜精品电影| 成人黄色软件下载| 91麻豆国产精品久久| 在线观看国产精品网站| 91精品视频网| 欧美精品一区二区三区蜜臀| 国产无一区二区| 亚洲天堂免费在线观看视频| 夜夜亚洲天天久久| 欧美激情综合五月色丁香 | 中文字幕乱码一区二区免费| 久久九九久久九九| 国产精品伦一区| 一区二区免费在线| 蜜臀av在线播放一区二区三区| 精品在线播放免费| 亚洲色图在线播放| 舔着乳尖日韩一区| 极品少妇一区二区三区精品视频 | 国产1区2区3区精品美女| av激情亚洲男人天堂| 欧美在线免费观看亚洲| 日韩你懂的在线观看| 国产亚洲一区字幕| 亚洲专区一二三| 捆绑变态av一区二区三区| 粉嫩13p一区二区三区| 在线一区二区观看| 2017欧美狠狠色| 亚洲精品五月天| 韩国成人精品a∨在线观看| 色综合一个色综合亚洲| 欧美一区二区三区免费在线看| 极品少妇一区二区| 成人激情免费网站| 欧美日韩亚洲综合一区| 久久久99久久精品欧美| 一区二区三区在线播放| 国产九九视频一区二区三区| 91免费看`日韩一区二区| 久久亚洲一区二区三区明星换脸| 夜夜爽夜夜爽精品视频| 国产一区二区电影| 欧美日韩高清在线播放| 一区在线播放视频| 国产一区 二区| 欧美一区二区三区男人的天堂| 一区二区中文视频| 国产麻豆精品一区二区| 8x8x8国产精品| 亚洲午夜久久久久久久久久久| 成人精品鲁一区一区二区| 日韩欧美中文一区二区| 亚洲一区在线看| 91在线看国产| 亚洲国产精品99久久久久久久久| 美女视频黄免费的久久| 欧美日精品一区视频| 国产精品国产三级国产aⅴ原创| 久久99国产精品麻豆| 欧美日韩中文精品| 一区二区三区波多野结衣在线观看 | 国产精品一区二区黑丝| 日韩欧美久久一区| 亚洲成a人片在线不卡一二三区| 色哟哟一区二区| 亚洲色图制服诱惑 | 成人免费黄色在线| 久久嫩草精品久久久久| 韩国毛片一区二区三区| 日韩一卡二卡三卡国产欧美| 日韩av二区在线播放| 6080日韩午夜伦伦午夜伦| 天天色图综合网|