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

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

?? main.c

?? usb 轉(zhuǎn) 232 ISP AMEGA8源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* Name: main.c * Project: AVR-Doper * Author: Christian Starkjohann <cs@obdev.at> * Creation Date: 2006-06-21 * Tabsize: 4 * Copyright: (c) 2006 by Christian Starkjohann, all rights reserved. * License: Proprietary, see documentation. * Revision: $Id: main.c 223 2006-07-18 09:28:13Z cs $ *//*General Description:This module implements hardware initialization and the USB interface*/#include "hardware.h"#include <avr/io.h>#include <avr/interrupt.h>#include <avr/pgmspace.h>#include <avr/wdt.h>#include <util/delay.h>#include <string.h>#include "utils.h"#include "usbdrv.h"#include "oddebug.h"#include "stk500protocol.h"#include "vreg.h"#include "serial.h"/* ------------------------------------------------------------------------- *//* CDC class requests: */enum {    SEND_ENCAPSULATED_COMMAND = 0,    GET_ENCAPSULATED_RESPONSE,    SET_COMM_FEATURE,    GET_COMM_FEATURE,    CLEAR_COMM_FEATURE,    SET_LINE_CODING = 0x20,    GET_LINE_CODING,    SET_CONTROL_LINE_STATE,    SEND_BREAK};/* defines for 'requestType' */#define REQUEST_TYPE_LINE_CODING    0   /* CDC GET/SET_LINE_CODING */#define REQUEST_TYPE_HID_FIRST      1   /* first block of HID reporting */#define REQUEST_TYPE_HID_SUBSEQUENT 2   /* subsequent block of HID reporting */#define REQUEST_TYPE_HID_DEBUGDATA  3   /* read/write data from/to debug interface */#define REQUEST_TYPE_VENDOR         4   /* vendor request for get/set debug data *//* ------------------------------------------------------------------------- */#if ENABLE_CDC_INTERFACEstatic uchar    modeBuffer[7] = {0x80, 0x25, 0, 0, 0, 0, 8};  /* default: 9600 bps, 8n1 */#   if USE_DCD_REPORTINGstatic uchar    intr3Status;#   endif#endif#if ENABLE_HID_INTERFACEstatic uchar    hidStatus;#endifstatic uchar    requestType;static uchar    useHIDInterface;#if ENABLE_CDC_INTERFACEstatic PROGMEM char deviceDescrCDC[] = {    /* USB device descriptor */    18,         /* sizeof(usbDescriptorDevice): length of descriptor in bytes */    USBDESCR_DEVICE,        /* descriptor type */    0x01, 0x01,             /* USB version supported */    0x02,                   /* device class: CDC */    0,                      /* subclass */    0,                      /* protocol */    8,                      /* max packet size */    USB_CFG_VENDOR_ID,      /* 2 bytes */    0xe1, 0x05,             /* 2 bytes: shared PID for CDC-ACM devices */    USB_CFG_DEVICE_VERSION, /* 2 bytes */    1,                      /* manufacturer string index */    2,                      /* product string index */    0,                      /* serial number string index */    1,                      /* number of configurations */};static PROGMEM char configDescrCDC[] = {   /* USB configuration descriptor */    9,          /* sizeof(usbDescriptorConfiguration): length of descriptor in bytes */    USBDESCR_CONFIG,    /* descriptor type */    67, 0,      /* total length of data returned (including inlined descriptors) */    2,          /* number of interfaces in this configuration */    1,          /* index of this configuration */    0,          /* configuration name string index */#if USB_CFG_IS_SELF_POWERED    USBATTR_SELFPOWER,  /* attributes */#else    USBATTR_BUSPOWER,   /* attributes */#endif    USB_CFG_MAX_BUS_POWER/2,            /* max USB current in 2mA units */    /* interface descriptors follow inline: */    /* Interface Descriptor for CDC-ACM Control  */    9,          /* sizeof(usbDescrInterface): length of descriptor in bytes */    USBDESCR_INTERFACE, /* descriptor type */    0,          /* index of this interface */    0,          /* alternate setting for this interface */    1,          /* endpoints excl 0: number of endpoint descriptors to follow */    USB_CFG_INTERFACE_CLASS,    /* see usbconfig.h */    USB_CFG_INTERFACE_SUBCLASS,    USB_CFG_INTERFACE_PROTOCOL,    0,          /* string index for interface */    /* CDC Class-Specific descriptors */    5,          /* sizeof(usbDescrCDC_HeaderFn): length of descriptor in bytes */    0x24,       /* descriptor type */    0,          /* Subtype: header functional descriptor */    0x10, 0x01, /* CDC spec release number in BCD */    4,          /* sizeof(usbDescrCDC_AcmFn): length of descriptor in bytes */    0x24,       /* descriptor type */    2,          /* Subtype: abstract control management functional descriptor */    0x02,       /* capabilities: SET_LINE_CODING, GET_LINE_CODING, SET_CONTROL_LINE_STATE */    5,          /* sizeof(usbDescrCDC_UnionFn): length of descriptor in bytes */    0x24,       /* descriptor type */    6,          /* Subtype: union functional descriptor */    0,          /* CDC_COMM_INTF_ID: master interface (control) */    1,          /* CDC_DATA_INTF_ID: slave interface (data) */    5,          /* sizeof(usbDescrCDC_CallMgtFn): length of descriptor in bytes */    0x24,       /* descriptor type */    1,          /* Subtype: call management functional descriptor */    0x03,       /* capabilities: allows management on data interface, handles call management by itself */    1,          /* CDC_DATA_INTF_ID: interface used for call management */    /* Endpoint Descriptor */    7,          /* sizeof(usbDescrEndpoint) */    USBDESCR_ENDPOINT,  /* descriptor type = endpoint */    0x83,       /* IN endpoint number 3 */    0x03,       /* attrib: Interrupt endpoint */    8, 0,       /* maximum packet size */    100,        /* in ms */    /* Interface Descriptor for CDC-ACM Data  */    9,          /* sizeof(usbDescrInterface): length of descriptor in bytes */    USBDESCR_INTERFACE, /* descriptor type */    1,          /* index of this interface */    0,          /* alternate setting for this interface */    2,          /* endpoints excl 0: number of endpoint descriptors to follow */    0x0a,       /* Data Interface Class Codes */    0,          /* interface subclass */    0,          /* Data Interface Class Protocol Codes */    0,          /* string index for interface */    /* Endpoint Descriptor */    7,          /* sizeof(usbDescrEndpoint) */    USBDESCR_ENDPOINT,  /* descriptor type = endpoint */    0x01,       /* OUT endpoint number 1 */    0x02,       /* attrib: Bulk endpoint */    8, 0,       /* maximum packet size */    0,          /* in ms */    /* Endpoint Descriptor */    7,          /* sizeof(usbDescrEndpoint) */    USBDESCR_ENDPOINT,  /* descriptor type = endpoint */    0x81,       /* IN endpoint number 1 */    0x02,       /* attrib: Bulk endpoint */    8, 0,       /* maximum packet size */    0,          /* in ms */};#endif /* ENABLE_CDC_INTERFACE */#if ENABLE_HID_INTERFACEstatic PROGMEM char deviceDescrHID[] = {    /* USB device descriptor */    18,         /* sizeof(usbDescriptorDevice): length of descriptor in bytes */    USBDESCR_DEVICE,        /* descriptor type */    0x01, 0x01,             /* USB version supported */    0,                      /* device class: composite */    0,                      /* subclass */    0,                      /* protocol */    8,                      /* max packet size */    USB_CFG_VENDOR_ID,      /* 2 bytes */    0xdf, 0x05,             /* 2 bytes: shared PID for HIDs */    USB_CFG_DEVICE_VERSION, /* 2 bytes */    1,                      /* manufacturer string index */    2,                      /* product string index */    0,                      /* serial number string index */    1,                      /* number of configurations */};static PROGMEM char configDescrHID[] = {    /* USB configuration descriptor */    9,          /* sizeof(usbDescriptorConfiguration): length of descriptor in bytes */    USBDESCR_CONFIG,/* descriptor type */    18 + 7 + 9, 0,  /* total length of data returned (including inlined descriptors) */    1,          /* number of interfaces in this configuration */    1,          /* index of this configuration */    0,          /* configuration name string index */#if USB_CFG_IS_SELF_POWERED    USBATTR_SELFPOWER,  /* attributes */#else    USBATTR_BUSPOWER,   /* attributes */#endif    USB_CFG_MAX_BUS_POWER/2,    /* max USB current in 2mA units *//* interface descriptor follows inline: */    9,          /* sizeof(usbDescrInterface): length of descriptor in bytes */    USBDESCR_INTERFACE, /* descriptor type */    0,          /* index of this interface */    0,          /* alternate setting for this interface */    USB_CFG_HAVE_INTRIN_ENDPOINT,   /* endpoints excl 0: number of endpoint descriptors to follow */    3,          /* interface class: HID */    0,          /* subclass */    0,          /* protocol */    0,          /* string index for interface */    9,          /* sizeof(usbDescrHID): length of descriptor in bytes */    USBDESCR_HID,   /* descriptor type: HID */    0x01, 0x01, /* BCD representation of HID version */    0x00,       /* target country code */    0x01,       /* number of HID Report (or other HID class) Descriptor infos to follow */    0x22,       /* descriptor type: report */    USB_CFG_HID_REPORT_DESCRIPTOR_LENGTH, 0,  /* total length of report descriptor */    7,          /* sizeof(usbDescrEndpoint) */    USBDESCR_ENDPOINT,  /* descriptor type = endpoint */    0x81,       /* IN endpoint number 1 */    0x03,       /* attrib: Interrupt endpoint */    8, 0,       /* maximum packet size */    USB_CFG_INTR_POLL_INTERVAL, /* in ms */};PROGMEM char usbDescriptorHidReport[60] = {    0x06, 0x00, 0xff,              // USAGE_PAGE (Generic Desktop)    0x09, 0x01,                    // USAGE (Vendor Usage 1)    0xa1, 0x01,                    // COLLECTION (Application)    0x15, 0x00,                    //   LOGICAL_MINIMUM (0)    0x26, 0xff, 0x00,              //   LOGICAL_MAXIMUM (255)    0x75, 0x08,                    //   REPORT_SIZE (8)    0x85, 0x01,                    //   REPORT_ID (1)    0x95, 0x0e,                    //   REPORT_COUNT (14)    0x09, 0x00,                    //   USAGE (Undefined)    0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)    0x85, 0x02,                    //   REPORT_ID (2)    0x95, 0x1e,                    //   REPORT_COUNT (30)    0x09, 0x00,                    //   USAGE (Undefined)    0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)    0x85, 0x03,                    //   REPORT_ID (3)    0x95, 0x3e,                    //   REPORT_COUNT (62)    0x09, 0x00,                    //   USAGE (Undefined)    0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)    0x85, 0x04,                    //   REPORT_ID (4)    0x95, 0x7e,                    //   REPORT_COUNT (126)    0x09, 0x00,                    //   USAGE (Undefined)    0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)    0x85, 0x06,                    //   REPORT_ID (5) [for debug interface]    0x95, 0x3e,                    //   REPORT_COUNT (62)    0x09, 0x00,                    //   USAGE (Undefined)    0xb2, 0x02, 0x01,              //   FEATURE (Data,Var,Abs,Buf)    0xc0                           // END_COLLECTION};#endif /* ENABLE_HID_INTERFACE *//* ------------------------------------------------------------------------- */uchar usbFunctionDescriptor(usbRequest_t *rq){uchar *p = NULL, len = 0, useHID = useHIDInterface;    if(useHID){#if ENABLE_HID_INTERFACE        if(rq->wValue.bytes[1] == USBDESCR_DEVICE){            p = (uchar *)deviceDescrHID;            len = sizeof(deviceDescrHID);        }else if(rq->wValue.bytes[1] == USBDESCR_CONFIG){            p = (uchar *)configDescrHID;            len = sizeof(configDescrHID);        }else{  /* must be HID descriptor */            p = (uchar *)(configDescrHID + 18);            len = 9;        }#endif    }else{#if ENABLE_CDC_INTERFACE        if(rq->wValue.bytes[1] == USBDESCR_DEVICE){            p = (uchar *)deviceDescrCDC;            len = sizeof(deviceDescrCDC);        }else{  /* must be config descriptor */            p = (uchar *)configDescrCDC;            len = sizeof(configDescrCDC);        }#endif    }    usbMsgPtr = p;    return len;}/* ------------------------------------------------------------------------- *//* ----------------------------- USB interface ----------------------------- *//* ------------------------------------------------------------------------- */uchar usbFunctionSetup(uchar data[8]){usbRequest_t    *rq = (void *)data;uchar           rqType = rq->bmRequestType & USBRQ_TYPE_MASK;    if(rqType == USBRQ_TYPE_CLASS){    /* class request type */        if(useHIDInterface){#if ENABLE_HID_INTERFACE            if(rq->bRequest == USBRQ_HID_GET_REPORT || rq->bRequest == USBRQ_HID_SET_REPORT){                hidStatus = rq->wValue.bytes[0];    /* store report ID */                if(rq->wValue.bytes[0] == 5){   /* report ID */                    requestType = REQUEST_TYPE_HID_DEBUGDATA;                }else{                    requestType = REQUEST_TYPE_HID_FIRST;                }                /* the driver counts the total number of bytes for us */                return 0xff;            }#endif        }else{#if ENABLE_CDC_INTERFACE

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产无人区一区二区三区| 色婷婷久久一区二区三区麻豆| 欧美日韩不卡一区| 一区二区三区国产精华| 色狠狠综合天天综合综合| 一区二区三区中文字幕电影| 日本高清不卡在线观看| 午夜精品福利一区二区三区av| 欧美电影一区二区| 韩国理伦片一区二区三区在线播放| www激情久久| 成人免费的视频| 亚洲精品高清在线| 在线播放亚洲一区| 国产一区二区成人久久免费影院| 久久精品网站免费观看| 成人的网站免费观看| 亚洲另类在线一区| 色狠狠一区二区三区香蕉| 久久久久高清精品| 亚洲男同1069视频| 日韩欧美一级二级三级久久久| 日韩经典一区二区| 久久久久国产精品厨房| 91视频一区二区三区| 亚洲6080在线| 久久久久九九视频| 一本高清dvd不卡在线观看| 日韩av一区二| 国产精品传媒入口麻豆| 91精品国产欧美一区二区18| 国产伦精品一区二区三区视频青涩 | 国产女人aaa级久久久级| 91在线你懂得| 久久99精品久久只有精品| 欧美一区二区三区在线观看| 久久精品国产免费看久久精品| 国产免费久久精品| 欧美日韩国产a| 成人午夜在线视频| 日本女人一区二区三区| 亚洲六月丁香色婷婷综合久久| www.亚洲在线| 亚洲人精品午夜| 欧美成人乱码一区二区三区| 日本精品免费观看高清观看| 国产在线视频精品一区| 亚洲午夜久久久久久久久久久 | 免费成人深夜小野草| 中文字幕一区二区三区四区| 日韩欧美高清在线| 欧美性色aⅴ视频一区日韩精品| 国产精品18久久久久| 全部av―极品视觉盛宴亚洲| 亚洲精品老司机| 欧美国产激情二区三区| 精品久久久久久综合日本欧美| 欧美三级日本三级少妇99| 成人爱爱电影网址| 国产精品一区二区黑丝| 免播放器亚洲一区| 石原莉奈在线亚洲二区| 亚洲综合丁香婷婷六月香| 国产精品毛片无遮挡高清| 亚洲精品一区二区在线观看| 欧美一区二区三区精品| 在线播放国产精品二区一二区四区| 一本色道**综合亚洲精品蜜桃冫| 风间由美中文字幕在线看视频国产欧美| 日韩高清在线不卡| 日韩影院免费视频| 午夜国产精品一区| 日本中文字幕一区| 视频一区二区不卡| 日本成人在线不卡视频| 日韩精品亚洲一区二区三区免费| 五月天激情综合| 五月综合激情网| 人人超碰91尤物精品国产| 日韩av电影免费观看高清完整版| 日韩精品亚洲专区| 男女性色大片免费观看一区二区 | 日韩高清在线不卡| 日本不卡的三区四区五区| 日韩电影在线一区二区三区| 日韩高清在线一区| 极品少妇xxxx精品少妇偷拍| 精品一区二区在线看| 国产中文字幕精品| 成人午夜又粗又硬又大| av电影天堂一区二区在线观看| kk眼镜猥琐国模调教系列一区二区| 丁香一区二区三区| 91在线观看地址| 在线观看欧美黄色| 日韩视频一区二区| 26uuu国产日韩综合| 国产精品国产自产拍高清av| 亚洲精品视频自拍| 日韩二区在线观看| 国产成人综合在线| 91国产免费看| 日韩一级二级三级| 欧美国产1区2区| 亚洲永久精品国产| 久久99热国产| 成人激情免费视频| 欧美日韩美少妇| 久久亚洲捆绑美女| 亚洲男女毛片无遮挡| 蜜桃视频一区二区| 粗大黑人巨茎大战欧美成人| 在线视频观看一区| 日韩精品一区二| 中文字幕佐山爱一区二区免费| 亚洲午夜免费视频| 国产精品影视在线观看| 欧美又粗又大又爽| 日韩欧美国产综合在线一区二区三区| 久久综合九色综合欧美98| 亚洲免费观看视频| 国产一区二区剧情av在线| 成人国产精品免费网站| 日韩一区二区中文字幕| 亚洲靠逼com| 激情亚洲综合在线| 在线观看国产日韩| 国产精品自拍三区| 国产精品麻豆视频| 亚洲国产综合人成综合网站| 国产一区二区三区免费观看 | 91老司机福利 在线| 日韩一级大片在线| 亚洲欧美激情插 | 久久婷婷久久一区二区三区| 国产精品免费视频网站| 六月丁香综合在线视频| 欧美视频中文字幕| 亚洲人成人一区二区在线观看| 久88久久88久久久| 欧美亚洲国产一区在线观看网站 | 国产精品欧美久久久久一区二区| 日韩成人午夜精品| 色一情一伦一子一伦一区| 国产欧美综合色| 久久精品国内一区二区三区| 欧美在线你懂得| 综合激情成人伊人| 粉嫩高潮美女一区二区三区| 欧美一级久久久| 午夜一区二区三区视频| 色噜噜狠狠成人网p站| 国产精品美女www爽爽爽| 国产精品亚洲成人| 欧美大黄免费观看| 日本欧美一区二区| 欧美老年两性高潮| 亚洲精选视频在线| 99久久伊人网影院| 国产精品久久久久久久第一福利| 国产精品99久久不卡二区| 精品少妇一区二区三区日产乱码 | 欧美一区二区黄色| 亚洲成av人片一区二区三区| 色诱亚洲精品久久久久久| 亚洲欧美日韩人成在线播放| 成a人片国产精品| 亚洲国产精品传媒在线观看| 国产白丝网站精品污在线入口| 久久夜色精品国产欧美乱极品| 久久精品国产亚洲aⅴ| 久久综合久久综合亚洲| 国产成人丝袜美腿| 欧美激情一区二区三区全黄 | 中文字幕一区二区在线观看 | 欧美日韩一区高清| 午夜婷婷国产麻豆精品| 在线不卡的av| 久久av老司机精品网站导航| 精品久久久久久久久久久久包黑料 | 亚洲视频在线一区二区| 91理论电影在线观看| 亚洲综合激情小说| 91精品免费观看| 另类人妖一区二区av| 久久久久成人黄色影片| 99久久精品国产麻豆演员表| 亚洲欧美福利一区二区| 欧美日韩国产精品成人| 男女性色大片免费观看一区二区| 欧美成人官网二区| 福利91精品一区二区三区| 一区二区三区在线免费| 欧美人妖巨大在线| 国产一区二区三区黄视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久久久久久99精品| 色香蕉成人二区免费| 欧美a一区二区| 国产欧美日韩精品一区|