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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? kb.c

?? fill all of us with joy of urs
?? C
字號:
#include <io.h>
#include <stdlib.h>
#include <sig-avr.h>
#include <interrupt.h>
#include <progmem.h>

#include "kb.h"
#include "serial.h"
#include "pindefs.h"
#include "scancodes.h"
#include "StdDefs.h"

#define BUFF_SIZE 64

unsigned char edge, bitcount;                // 0 = neg.  1 = pos.

unsigned char kb_buffer[BUFF_SIZE];
unsigned char *inpt, *outpt;
unsigned char buffcnt;


void init_kb(void)
{
    inpt =  kb_buffer;                        // Initialize buffer
    outpt = kb_buffer;
    buffcnt = 0;

    MCUCR = 2;                                // INT0 interrupt on falling edge
    edge = 0;                                // 0 = falling edge  1 = rising edge
    bitcount = 11;
}

SIGNAL(SIG_INTERRUPT0)
{
    static unsigned char data;                // Holds the received scan code

    if (!edge)                                // Routine entered at falling edge
    {
        if(bitcount < 11 && bitcount > 2)    // Bit 3 to 10 is data. Parity bit,
        {                                    // start and stop bits are ignored.
            data = (data >> 1);
            if(PIND & 8)
                data = data | 0x80;            // Store a '1'
        }

        MCUCR = 3;                            // Set interrupt on rising edge
        edge = 1;
        
    } else {                                // Routine entered at rising edge

        MCUCR = 2;                            // Set interrupt on falling edge
        edge = 0;

        if(--bitcount == 0)                    // All bits received
        {
            decode(data);
            bitcount = 11;
        }
    }
    //    test_pin();
}


void decode(unsigned char sc)
{
    static unsigned char is_up=0, shift = 0, mode = 0;
    unsigned char i;

    if (!is_up)                // Last data received was the up-key identifier
    {
        switch (sc)
        {
          case 0xF0 :        // The up-key identifier
            is_up = 1;
            break;

          case 0x12 :        // Left SHIFT
            shift = 1;
            break;

          case 0x59 :        // Right SHIFT
            shift = 1;
            break;

          case 0x05 :        // F1
            if(mode == 0)
                mode = 1;    // Enter scan code mode
            if(mode == 2)
                mode = 3;    // Leave scan code mode
            break;

          default:
            if(mode == 0 || mode == 3)        // If ASCII mode
            {
                if(!shift)                    // If shift not pressed,
                {                            // do a table look-up
                    for(i = 0; PRG_RDB(&unshifted[i][0])!=sc && PRG_RDB(&unshifted[i][0]); i++);
                    if (PRG_RDB(&unshifted[i][0]) == sc) {
                        put_kbbuff(PRG_RDB(&unshifted[i][1]));
                    }
                } else {                    // If shift pressed
                    for(i = 0; PRG_RDB(&shifted[i][0])!=sc && PRG_RDB(&shifted[i][0]); i++);
                    if (PRG_RDB(&shifted[i][0]) == sc) {
                        put_kbbuff(PRG_RDB(&shifted[i][1]));
                    }
                }
            } else{                            // Scan code mode
                print_hexbyte(sc);            // Print scan code
                put_kbbuff(' ');
                put_kbbuff(' ');
            }
            break;
            
        }
    } else {
        is_up = 0;                            // Two 0xF0 in a row not allowed
        switch (sc)
        {
          case 0x12 :                        // Left SHIFT
            shift = 0;
            break;
            
          case 0x59 :                        // Right SHIFT
            shift = 0;
            break;

          case 0x05 :                        // F1
            if(mode == 1)
                mode = 2;
            if(mode == 3)
                mode = 0;
            break;
          case 0x06 :                        // F2
            clr();
            break;
        } 
    }    
} 

void put_kbbuff(unsigned char c)
{
    if (buffcnt<BUFF_SIZE)                        // If buffer not full
    {
        *inpt = c;                                // Put character into buffer
        inpt++;                                    // Increment pointer

        buffcnt++;

        if (inpt >= kb_buffer + BUFF_SIZE)        // Pointer wrapping
            inpt = kb_buffer;
    }
}

int getchar(void)
{
    int byte;
    while(buffcnt == 0) 
    {     // Wait for data
    run_led(30000, 30000);
    }
    byte = *outpt;                                // Get byte
    outpt++;                                    // Increment pointer

    if (outpt >= kb_buffer + BUFF_SIZE)            // Pointer wrapping
        outpt = kb_buffer;
    
    buffcnt--;                                    // Decrement buffer count

    return byte;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆91在线播放| 久久久不卡影院| 91精品国产91热久久久做人人| 欧美日韩亚洲综合| 精品理论电影在线观看| 中文字幕国产一区| 精品一区二区三区久久久| 91成人在线观看喷潮| 久久精品夜夜夜夜久久| 日韩av不卡在线观看| 色综合咪咪久久| 欧美国产一区在线| 国产v日产∨综合v精品视频| 欧美一区二区在线免费播放| 亚洲色图在线视频| 国产盗摄一区二区| 久久精品水蜜桃av综合天堂| 强制捆绑调教一区二区| 欧美三级日韩三级| 亚洲精品高清视频在线观看| 99精品视频在线观看免费| 久久久久久毛片| 91麻豆蜜桃一区二区三区| 精品欧美乱码久久久久久1区2区| 欧美理论片在线| 亚洲国产综合视频在线观看| 日本韩国欧美国产| 一区二区三区中文字幕精品精品| 亚洲精品成人少妇| 91丝袜美腿高跟国产极品老师 | 欧美一区二区久久| 亚洲国产成人va在线观看天堂| 亚洲一二三四在线观看| 成人动漫视频在线| 国产日韩在线不卡| www.在线欧美| 亚洲天堂福利av| 一本一道综合狠狠老| 亚洲欧美日韩国产一区二区三区| 人人精品人人爱| 日韩限制级电影在线观看| 日韩在线一二三区| 日韩精品中文字幕在线不卡尤物| 国产亚洲欧美日韩在线一区| 国产福利一区二区| 国产女同互慰高潮91漫画| 成人午夜激情视频| 综合久久国产九一剧情麻豆| 99精品在线观看视频| 国内精品视频666| 久久精品一区二区三区不卡| 成人v精品蜜桃久久一区| 亚洲品质自拍视频| 91精品福利在线一区二区三区| 国产精品福利一区| 在线亚洲高清视频| 久久国产精品第一页| 国产色婷婷亚洲99精品小说| 成人美女在线观看| 亚洲成人免费在线观看| 欧美精品一区二区三区蜜臀| 成人永久免费视频| 亚洲成av人**亚洲成av**| 日韩欧美视频在线| av成人免费在线观看| 亚洲国产精品久久不卡毛片 | a亚洲天堂av| 日韩av一区二区三区| 国产精品家庭影院| 国产成人精品综合在线观看| 中文字幕一区av| 制服丝袜在线91| 成人动漫视频在线| 日韩高清不卡一区二区| 国产欧美久久久精品影院| 欧美日韩视频一区二区| 国产激情视频一区二区三区欧美| 制服丝袜国产精品| 国产成人亚洲精品狼色在线| 亚洲一区二区三区免费视频| 精品国产成人系列| 色婷婷亚洲综合| 成人黄色国产精品网站大全在线免费观看| 欧美色图激情小说| 国产一区二区三区观看| 一区二区三区在线高清| xvideos.蜜桃一区二区| 欧美中文字幕一区二区三区| 久久激五月天综合精品| 亚洲成人资源网| 中文字幕一区二区三区乱码在线| 成人黄色软件下载| 久久 天天综合| 日本亚洲视频在线| 亚洲人妖av一区二区| 日本一区二区三区电影| 日韩精品专区在线| 91精品国产一区二区三区蜜臀 | 欧美大胆一级视频| 欧美午夜不卡在线观看免费| 国产99久久久国产精品| 午夜视频一区在线观看| 久久精品一区二区| 日韩一区二区三区在线| 538prom精品视频线放| 99国产精品久久久| 国产麻豆精品久久一二三| 久久99国产精品久久| 美女视频网站久久| 亚洲乱码国产乱码精品精的特点| 99麻豆久久久国产精品免费优播| 最新久久zyz资源站| 国产欧美日韩麻豆91| 国产午夜亚洲精品羞羞网站| 欧美一二三四区在线| 国产精品区一区二区三区| 精品久久久久久亚洲综合网 | 国产综合久久久久影院| 久久精品72免费观看| 日本成人在线电影网| 一个色妞综合视频在线观看| 亚洲国产婷婷综合在线精品| 国产一区二区精品久久99| 五月天婷婷综合| 亚洲国产aⅴ成人精品无吗| 一个色在线综合| 日韩综合小视频| 日韩精品免费视频人成| 国产真实精品久久二三区| 风流少妇一区二区| 91尤物视频在线观看| 欧美性高清videossexo| 91精品国产aⅴ一区二区| 26uuu亚洲综合色| 1000部国产精品成人观看| 亚洲综合丁香婷婷六月香| 日本不卡123| 国产**成人网毛片九色| 在线观看视频一区二区| 日韩一级免费一区| 欧美极品另类videosde| 亚洲制服丝袜一区| 韩国欧美国产1区| av激情成人网| 欧美一卡在线观看| 国产精品久久久久精k8| 91视频在线看| 麻豆91在线观看| 国产精品99久| 欧美中文一区二区三区| 日韩欧美电影在线| 国产精品久久久久久久久免费丝袜 | 成人一区二区三区视频在线观看 | 蜜桃av一区二区在线观看| 麻豆精品视频在线观看免费| 成人晚上爱看视频| 欧美人狂配大交3d怪物一区| 久久久99免费| 日韩高清在线电影| av电影天堂一区二区在线| 91精品婷婷国产综合久久性色| 欧美午夜电影网| 中文字幕乱码一区二区免费| 午夜精品福利在线| 国产精品一二三| 亚洲日本乱码在线观看| 日韩精品电影在线| 奇米四色…亚洲| 精品一区二区三区不卡| 99九九99九九九视频精品| 日韩一二三区视频| 亚洲欧洲中文日韩久久av乱码| 欧美国产日韩亚洲一区| 日本亚洲欧美天堂免费| av一区二区三区在线| 久久亚洲二区三区| 亚洲成人中文在线| av午夜一区麻豆| 欧美国产综合一区二区| 久久99精品国产.久久久久久 | 日产国产高清一区二区三区| 丰满少妇在线播放bd日韩电影| 狠狠狠色丁香婷婷综合激情 | 亚洲高清在线精品| 99精品久久只有精品| 国产午夜亚洲精品理论片色戒| 久久久久久亚洲综合影院红桃| 精品少妇一区二区三区| 国产综合色精品一区二区三区| 高清不卡在线观看| 在线亚洲一区二区| 欧美国产欧美综合| 国产高清精品网站| 久久久另类综合| 国产成人久久精品77777最新版本| www.成人在线| 中文字幕免费观看一区| 国产一区在线观看视频| 欧美成人伊人久久综合网| 毛片av一区二区三区|