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

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

?? keyboard.c

?? 該源碼是創維特ARM7 JX44B0X板的例子程序
?? C
字號:
#include <stdio.h>#include <sys/time.h>#include <signal.h>#include "../include/44b.h"struct timeval key_tpstart;char key_get_char(int row, int col){        char key;         switch( row )        {        case 0:                if((col & 0x01) == 0) key = '7';                else if((col & 0x02) == 0) key = '1';                else if((col & 0x04) == 0) key = '0';                else if((col & 0x08) == 0) key = '4';                break;        case 1:                if((col & 0x01) == 0) key = '8';                else if((col & 0x02) == 0) key = '2';                else if((col & 0x04) == 0) key = 'A';                else if((col & 0x08) == 0) key = '5';                break;        case 2:                if((col & 0x01) == 0) key = '9';                else if((col & 0x02) == 0) key = '3';                else if((col & 0x04) == 0) key = 'B';                else if((col & 0x08) == 0) key = '6';                break;        case 3:                if((col & 0x01) == 0) key = 'E';                else if((col & 0x02) == 0) key = 'C';                else if((col & 0x04) == 0) key = 'F';                else if((col & 0x08) == 0) key = 'D';                break;        default:                break;        }        return key;}#define RECV_CMD_MAX_BUF 2048char recv_buf[RECV_CMD_MAX_BUF];int  recv_read = 0;int  recv_write = 0;                                                                                       char key_recv_buf[RECV_CMD_MAX_BUF];int  key_recv_read = 0;int  key_recv_write = 0;enum KEYBOARD_SCAN_STATUS{        KEYBOARD_SCAN_FIRST,        KEYBOARD_SCAN_SECOND,        KEYBOARD_SCAN_THIRD,        KEYBOARD_SCAN_FOURTH};int row = 0;unsigned char output_0x02000000=0xff;unsigned char   ascii_key, input_key[4], input_key1[4], key_mask = 0x0F;unsigned char*  keyboard_port_scan = (unsigned char*)0x02000000;unsigned char*  keyboard_port_value = (unsigned char*)0x02000002;int              keyboard_scan_status[4] = {                                                                                                                KEYBOARD_SCAN_FIRST,                                                                                                                KEYBOARD_SCAN_FIRST,                                                                                                                KEYBOARD_SCAN_FIRST,                                                                                                                KEYBOARD_SCAN_FIRST                                                                                                          };void key_recv_key(int key){        key_recv_buf[key_recv_write] = key;        key_recv_write ++;        if(key_recv_write >= RECV_CMD_MAX_BUF)                key_recv_write = 0;                                                                                               if(key_recv_write == key_recv_read)        {                key_recv_read ++;                if(key_recv_read >= RECV_CMD_MAX_BUF)                        key_recv_read = 0;        }}void Kbd_Scan(void){        int loopcnt = row, bexit = 0;        int temp;         for( loopcnt = row; loopcnt < row + 4; loopcnt ++)        {                if(loopcnt >= 4)                        temp = loopcnt - 4;                else                        temp = loopcnt;                switch(keyboard_scan_status[temp])                {                        case KEYBOARD_SCAN_FIRST:                                *keyboard_port_scan = output_0x02000000 & (~(0x00000001<<temp));                                keyboard_scan_status[temp] = KEYBOARD_SCAN_SECOND;                                bexit = 1;                                break;                        case KEYBOARD_SCAN_SECOND:                                input_key[temp] = (*keyboard_port_value) & key_mask;                                  if(input_key[temp] == key_mask)                                        keyboard_scan_status[temp] = KEYBOARD_SCAN_FIRST;                                     else                                {                                        keyboard_scan_status[temp] = KEYBOARD_SCAN_THIRD;                                        bexit = 1;                                }                                break;                        case KEYBOARD_SCAN_THIRD:                                if (((*keyboard_port_value) & key_mask) != input_key[temp])                                        keyboard_scan_status[temp] = KEYBOARD_SCAN_FIRST;                                else                                {                                        ascii_key = key_get_char(temp, input_key[temp]);                                        keyboard_scan_status[temp] = KEYBOARD_SCAN_FOURTH;                                         *keyboard_port_scan = output_0x02000000 & (~(0x00000001<<temp));                                        bexit = 1;                                }                                break;                        case KEYBOARD_SCAN_FOURTH:                                input_key1[temp] = (*keyboard_port_value) & key_mask;                                 if(input_key1[temp] == key_mask)                                {                                        key_recv_key(ascii_key);                                        keyboard_scan_status[temp] = KEYBOARD_SCAN_FIRST;                                }else                                {                                        *keyboard_port_scan = output_0x02000000 & (~(0x00000001<<temp));                                           bexit = 1;                                }                                break;                }                if(bexit)                        break;        }         row = temp;}char DrvKeyGet(){        char ch;         if(key_recv_write == key_recv_read)        {                /* no key found */                ch = 0;        }else        {                ch = key_recv_buf[key_recv_read];                key_recv_read ++;                if(key_recv_read >= RECV_CMD_MAX_BUF)                        key_recv_read = 0;        }        return ch;}char DrvKeyGetNoDel(){        char ch;         if(key_recv_write == key_recv_read)        {                /* no key found */                ch = 0;        }else        {                ch = key_recv_buf[key_recv_read];        }        return ch;}void key_timer(int signo){	Kbd_Scan();	pulse_timer();} void key_init_sigaction(void){    struct sigaction act;    act.sa_handler=key_timer;    act.sa_flags=0;    sigemptyset(&act.sa_mask);    sigaction(SIGPROF,&act,NULL);    /* begin get the time */    gettimeofday(&key_tpstart,NULL);}void key_init_time(){    struct itimerval value;    value.it_value.tv_sec=0;    value.it_value.tv_usec=1;    value.it_interval=value.it_value;    setitimer(ITIMER_PROF,&value,NULL);}void key_init(){    key_init_sigaction();    key_init_time();}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一级日韩不卡播放免费| 欧美一区二区免费| 欧美自拍偷拍一区| 欧美精品tushy高清| 色综合天天综合在线视频| 欧美日韩国产在线播放网站| 日韩一区二区三区四区五区六区| 久久久久久亚洲综合影院红桃| 自拍偷拍亚洲综合| 奇米影视在线99精品| 亚洲妇熟xx妇色黄| 国产激情视频一区二区三区欧美| 在线亚洲高清视频| 久久久九九九九| 性做久久久久久久免费看| 极品美女销魂一区二区三区免费| 色网站国产精品| 欧美精品一区二区三区在线| 最新日韩在线视频| 日本美女一区二区| 91女厕偷拍女厕偷拍高清| 欧美成人女星排名| 夜夜精品视频一区二区 | 亚洲第一搞黄网站| 国产精品亚洲一区二区三区在线| 在线观看不卡一区| 国产精品色哟哟| 九九九久久久精品| 欧美日韩激情一区二区三区| 国产精品免费aⅴ片在线观看| 日韩1区2区日韩1区2区| 日本高清不卡视频| 国产精品狼人久久影院观看方式| 日本va欧美va瓶| 91国产免费观看| 国产精品乱人伦中文| 激情综合一区二区三区| 欧美日韩色综合| 国产精品视频yy9299一区| 美女国产一区二区| 欧美一级欧美三级在线观看| 久久久99精品免费观看| 美女爽到高潮91| 欧美一区二区三区四区高清| 亚洲一区二区三区四区不卡| 日本韩国欧美一区二区三区| 中文字幕一区二区三区在线观看| 国产成人午夜片在线观看高清观看| 日韩免费电影一区| 欧美aaa在线| 在线观看日韩电影| 亚洲精品免费在线| 欧美丝袜丝交足nylons| 一区二区三区免费网站| 欧美中文字幕久久 | 日韩久久免费av| 日韩中文字幕亚洲一区二区va在线| 国产盗摄女厕一区二区三区| 欧美一区二区福利视频| 奇米四色…亚洲| 欧美白人最猛性xxxxx69交| 青青草97国产精品免费观看无弹窗版| 欧美性一级生活| 日韩福利电影在线观看| 欧美一级高清大全免费观看| 亚洲国产欧美在线人成| 99国产精品视频免费观看| 亚洲另类在线视频| 欧美日韩精品免费观看视频| 日韩av一级片| 欧美α欧美αv大片| 91在线国产福利| 亚洲成年人影院| 精品国产三级电影在线观看| 国产成人av影院| 亚洲欧洲www| 成人丝袜视频网| 亚洲精品国产品国语在线app| 欧美天堂一区二区三区| 国内精品在线播放| 中文字幕日本不卡| 91精品国产黑色紧身裤美女| 国产尤物一区二区在线| 国产精品午夜免费| 欧美三电影在线| 韩国一区二区三区| 亚洲三级电影网站| 在线播放中文字幕一区| 国产99久久久久久免费看农村| 亚洲乱码中文字幕| 精品久久一二三区| 国产成人免费视| 日韩在线一区二区三区| 国产亲近乱来精品视频| 欧美日韩精品免费观看视频| 国产乱码一区二区三区| 亚洲自拍欧美精品| 国产欧美一区二区在线观看| 在线一区二区观看| 国产成人在线视频网站| 一区二区三区久久久| 2014亚洲片线观看视频免费| 欧美伊人久久久久久久久影院| 国产中文字幕一区| 国产日韩精品久久久| 91精品国产日韩91久久久久久| 成人福利在线看| 精品一区二区三区日韩| 亚洲少妇屁股交4| 7777精品久久久大香线蕉| 成+人+亚洲+综合天堂| 久久精品国产99国产| 国产精品女同互慰在线看 | a在线播放不卡| 一区二区三区四区精品在线视频| 久久久美女艺术照精彩视频福利播放| 欧美日韩国产系列| 日本黄色一区二区| 99在线精品视频| 国产成人小视频| 亚洲国产一区二区视频| 日韩网站在线看片你懂的| 欧美三级电影在线观看| 91在线观看一区二区| 成人性生交大片免费| 国产成人精品免费| 日日夜夜精品视频天天综合网| 久久精品一二三| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲18色成人| 亚洲一二三四区| 一区二区激情视频| 亚洲三级电影网站| 久久久久久久综合| 久久人人爽爽爽人久久久| www成人在线观看| 欧美日韩久久久久久| 欧美日韩一区不卡| 欧美日韩国产首页在线观看| 欧美日韩国产美| 日韩视频一区二区在线观看| 欧美变态tickling挠脚心| 日韩三级视频在线观看| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美一区二区三区视频免费| 精品99一区二区三区| ...中文天堂在线一区| 午夜一区二区三区视频| 国精产品一区一区三区mba桃花| 国产福利精品导航| 欧美亚洲精品一区| 久久久亚洲国产美女国产盗摄 | 日韩影院免费视频| 国产黄色精品网站| 欧美日韩一区二区电影| 日本一区二区三区电影| 亚洲国产精品一区二区久久 | 91亚洲精品乱码久久久久久蜜桃| 欧美日韩亚洲综合在线 | 日本欧美在线观看| 成人午夜又粗又硬又大| 在线电影一区二区三区| 国产精品视频线看| 狠狠v欧美v日韩v亚洲ⅴ| 欧美图区在线视频| 中文字幕一区二区在线观看| 激情综合一区二区三区| 欧美日精品一区视频| 国产精品久久久久久久久免费丝袜| 午夜私人影院久久久久| 99国产一区二区三精品乱码| 久久综合狠狠综合久久激情 | 欧美一区二区三区影视| 亚洲品质自拍视频| 风间由美中文字幕在线看视频国产欧美| 在线观看av一区二区| 中文字幕一区二区三中文字幕| 极品少妇xxxx精品少妇偷拍| 欧美高清精品3d| 一区二区三区四区高清精品免费观看 | 欧美精品一二三| 亚洲免费观看高清在线观看| 国产精品亚洲第一区在线暖暖韩国 | 日本欧美在线观看| 欧美日韩极品在线观看一区| 亚洲欧美福利一区二区| 成人免费的视频| 国产区在线观看成人精品 | 久久久久久久久久久久电影| 免费在线看一区| 91精品一区二区三区久久久久久 | 欧美久久高跟鞋激| 亚洲最大色网站| 欧美体内she精高潮| 亚洲国产一区二区在线播放| 91成人在线免费观看| 亚洲黄色在线视频| 欧美视频一区在线| 亚洲国产欧美在线| 69堂亚洲精品首页|