亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
一本大道久久精品懂色aⅴ| 欧美国产97人人爽人人喊| 精品免费国产一区二区三区四区| 久久久久久久综合色一本| 一区二区三区蜜桃网| 国产精一区二区三区| 4hu四虎永久在线影院成人| 亚洲色图20p| 国产成人无遮挡在线视频| 欧美一区午夜视频在线观看 | 亚洲同性同志一二三专区| 日本欧美在线看| 欧美午夜一区二区三区| 国产精品国产自产拍高清av王其| 久久国产麻豆精品| 9191精品国产综合久久久久久| 亚洲男人电影天堂| 床上的激情91.| 国产三级久久久| 国产一区二区在线电影| 日韩免费高清视频| 日本aⅴ免费视频一区二区三区 | 91精品视频网| 亚洲国产精品一区二区久久| 99热国产精品| 国产精品家庭影院| 成人app下载| 中文字幕一区二区三区不卡在线| 国产精品99久久久久久宅男| 国产亚洲欧美一级| 欧美吻胸吃奶大尺度电影 | av网站一区二区三区| 日本一区二区免费在线观看视频 | 天天综合网天天综合色 | 成人性视频网站| 欧美高清在线一区二区| 成人高清在线视频| 国产精品成人午夜| 色婷婷精品久久二区二区蜜臂av | 在线观看视频一区二区| 亚洲综合无码一区二区| 欧美三级电影在线看| 亚洲国产一区二区三区| 欧美日韩国产一级二级| 丝袜脚交一区二区| 欧美videofree性高清杂交| 蜜桃视频第一区免费观看| 精品欧美乱码久久久久久1区2区| 国产剧情一区二区| 综合久久久久久| 欧美视频自拍偷拍| 免费看欧美美女黄的网站| 精品国产乱码久久| 成人app在线观看| 亚洲不卡av一区二区三区| 日韩精品中文字幕一区二区三区 | 色哟哟日韩精品| 日本视频免费一区| 久久精品男人的天堂| 色悠久久久久综合欧美99| 日韩精品1区2区3区| 久久欧美中文字幕| 91久久精品国产91性色tv| 日本不卡一区二区三区| 国产精品伦理在线| 欧美伦理电影网| 成人午夜又粗又硬又大| 亚洲韩国精品一区| 国产欧美日韩另类视频免费观看| 一本色道综合亚洲| 久久99国产精品久久99果冻传媒| 国产精品乱码妇女bbbb| 欧美久久久久久久久| 国产精品99久久久久久有的能看 | 色嗨嗨av一区二区三区| 蜜桃精品视频在线| 国产精一区二区三区| 椎名由奈av一区二区三区| 91精品国模一区二区三区| 成人av综合一区| 蜜臀va亚洲va欧美va天堂 | 色一区在线观看| 国模冰冰炮一区二区| 亚洲成人高清在线| 国产精品传媒视频| 久久亚洲综合色| 制服丝袜国产精品| 在线区一区二视频| 成人av在线观| 久久99精品一区二区三区| 亚洲成人福利片| 一区二区在线观看不卡| 久久精品综合网| 日韩一区二区三区高清免费看看| 91蝌蚪porny| 国产999精品久久久久久| 日本亚洲欧美天堂免费| 亚洲电影视频在线| 一区二区在线观看av| 综合精品久久久| 国产视频911| 久久综合成人精品亚洲另类欧美| 美国三级日本三级久久99| 亚洲激情第一区| 亚洲天堂a在线| 亚洲国产精品99久久久久久久久| 2欧美一区二区三区在线观看视频| 欧美美女激情18p| 欧美男同性恋视频网站| 欧美人与z0zoxxxx视频| 精品视频一区二区不卡| 欧美在线观看一区二区| 欧美亚洲动漫精品| 欧美日韩中文另类| 欧美日韩视频在线第一区| 欧美日韩精品一区二区三区四区 | 中文字幕五月欧美| 中文字幕色av一区二区三区| 国产精品少妇自拍| 国产精品久久久久久久裸模| 中文无字幕一区二区三区 | 日韩视频免费观看高清完整版| 欧美日韩精品一区二区三区四区 | 91麻豆精品在线观看| 色婷婷综合在线| 欧美在线视频日韩| 欧美系列在线观看| 欧美一区二区三区白人| 91精品国产综合久久精品| 日韩午夜在线观看视频| 日韩午夜三级在线| 久久久91精品国产一区二区三区| 国产欧美综合在线观看第十页| 中文字幕av免费专区久久| 国产精品久久久久一区 | 国产精品久久影院| 高清不卡一区二区在线| 成人av免费在线观看| 91亚洲国产成人精品一区二区三| 91麻豆文化传媒在线观看| 欧美日韩国产美| 久久久久久麻豆| 亚洲免费高清视频在线| 日韩精品一级二级 | 久久你懂得1024| 亚洲日本在线看| 天天亚洲美女在线视频| 国内久久婷婷综合| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美图片一区二区三区| 精品处破学生在线二十三| 成人欧美一区二区三区| 日本vs亚洲vs韩国一区三区二区 | 91蝌蚪porny| 日韩欧美在线影院| 亚洲视频免费在线| 另类小说综合欧美亚洲| www.成人网.com| 日韩视频一区二区三区在线播放| 国产精品视频看| 免费人成网站在线观看欧美高清| 波多野结衣亚洲| 欧美大胆人体bbbb| 一区二区三区**美女毛片| 国内精品国产三级国产a久久| 91麻豆123| 久久精品一区二区三区不卡牛牛| 亚洲高清中文字幕| av在线一区二区| 26uuu欧美日本| 日韩av网站在线观看| 色欲综合视频天天天| 欧美经典三级视频一区二区三区| 日韩电影一区二区三区四区| 91香蕉国产在线观看软件| 久久欧美中文字幕| 免费在线成人网| 欧美三级电影在线看| 亚洲乱码国产乱码精品精98午夜 | 色噜噜狠狠成人网p站| 久久蜜桃一区二区| 老鸭窝一区二区久久精品| 在线观看免费亚洲| 亚洲欧美在线aaa| 丰满亚洲少妇av| 久久久久久久久99精品| 久久精品99国产精品日本| 欧美日韩国产精选| 亚洲www啪成人一区二区麻豆 | 国产xxx精品视频大全| 日韩欧美色综合| 青青青伊人色综合久久| 欧美三区免费完整视频在线观看| 中文字幕日本不卡| www.欧美日韩国产在线| 国产精品女主播在线观看| 国产成人免费视频一区| 久久精品亚洲国产奇米99| 国产一区二区三区av电影| 国产午夜精品一区二区三区四区|