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

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

?? main.c

?? usb 轉 232 ISP AMEGA8源程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
            if(rq->bRequest == GET_LINE_CODING || rq->bRequest == SET_LINE_CODING){                requestType = REQUEST_TYPE_LINE_CODING;                return 0xff;            }#   if USE_DCD_REPORTING            if(rq->bRequest == SET_CONTROL_LINE_STATE){                /* Report serial state (carrier detect). On several Unix platforms,                 * tty devices can only be opened when carrier detect is set.                 */                intr3Status = 2;            }#   endif#endif        }    }#if ENABLE_DEBUG_INTERFACE    else if(rqType == USBRQ_TYPE_VENDOR){   /* vendor requests */        if(rq->bRequest == 1){  /* transmit data */            serialPutc(rq->wValue.bytes[0]);        }else if(rq->bRequest == 2){            requestType = REQUEST_TYPE_VENDOR;            return 0xff;    /* handle in usbFunctionRead() */        }    }#endif    return 0;}uchar usbFunctionRead(uchar *data, uchar len){    if(requestType == REQUEST_TYPE_LINE_CODING){#if ENABLE_CDC_INTERFACE        /* return the "virtual" configuration */        memcpy(data, modeBuffer, 7);        return 7;#endif    }#if ENABLE_DEBUG_INTERFACE    else if(requestType == REQUEST_TYPE_VENDOR){        uchar cnt;        for(cnt = 0; cnt < len && ringBufferHasData(&serialRingBuffer); cnt++){            *data++ = ringBufferRead(&serialRingBuffer);        }        return cnt;#if ENABLE_HID_INTERFACE    }else if(requestType == REQUEST_TYPE_HID_DEBUGDATA){        uchar *p = data, remaining;        if(hidStatus == 5){ /* first call */            *p++ = hidStatus;   /* report ID */            *p++ = ringBufferCount(&serialRingBuffer);            remaining = len - 2;            hidStatus = 1;  /* continue with subsequent call */        }else{            remaining = len;        }        if(hidStatus){            do{                if(!ringBufferHasData(&serialRingBuffer)){                    hidStatus = 0;                    break;                }                *p++ = ringBufferRead(&serialRingBuffer);            }while(--remaining);        }        return len;#endif    }#endif#if ENABLE_HID_INTERFACE    else if(requestType == REQUEST_TYPE_HID_FIRST || requestType == REQUEST_TYPE_HID_SUBSEQUENT){        uchar *p = data, remaining;        if(requestType == REQUEST_TYPE_HID_FIRST){            int cnt;            *p++ = hidStatus;   /* report ID */            cnt = stkGetTxCount();            if(utilHi8(cnt)){                *p = 255;            }else{                *p = cnt;     /* second byte is number of remaining bytes buffered */            }            p++;            remaining = len - 2;            requestType = REQUEST_TYPE_HID_SUBSEQUENT;        }else{            remaining = len;        }        if(hidStatus){            do{                int c = stkGetTxByte();                if(c < 0){                    hidStatus = 0;                    break;                }                *p++ = c;            }while(--remaining);        }        return len;    }#endif    return 0;   /* error -> terminate transfer */}uchar usbFunctionWrite(uchar *data, uchar len){    if(requestType == REQUEST_TYPE_LINE_CODING){#if ENABLE_CDC_INTERFACE        /* Don't know why data toggling is reset when line coding is changed, but it is... */        usbTxPacketCnt1 = 1;    /* enforce DATA0 token for next transfer */        /* store the line configuration so that we can return it on request */        memcpy(modeBuffer, data, 7);        return 1;#endif    }#if ENABLE_HID_INTERFACE#if ENABLE_DEBUG_INTERFACE    else if(requestType == REQUEST_TYPE_HID_DEBUGDATA){        uchar *p = data, rval = len != 8;        if(hidStatus == 5){ /* first call */            hidStatus = -p[1]; /* second byte is data length */            p += 2;            len -= 2;        }        do{            if(!hidStatus)                break;            serialPutc(*p++);            hidStatus++;        }while(--len);        return rval;    /* the last packet must have 7 bytes insted of 8 */    }#endif    else if(requestType == REQUEST_TYPE_HID_FIRST || requestType == REQUEST_TYPE_HID_SUBSEQUENT){        uchar *p = data, rval = len != 8;        if(requestType == REQUEST_TYPE_HID_FIRST){            hidStatus = p[1]; /* second byte is data length */            p += 2;            len -= 2;            requestType = REQUEST_TYPE_HID_SUBSEQUENT;        }        do{            if(!hidStatus)                break;            stkSetRxChar(*p++);            hidStatus--;        }while(--len);        return rval;    /* the last packet must have 7 bytes insted of 8 */    }#endif    return 1;   /* error -> accept everything until end */}void usbFunctionWriteOut(uchar *data, uchar len){#if ENABLE_CDC_INTERFACE    do{ /* len must be at least 1 character, the driver discards zero sized packets */        stkSetRxChar(*data++);    }while(--len);#endif}/* ------------------------------------------------------------------------- *//* ------------------------------------------------------------------------- *//* ------------------------------------------------------------------------- */static void readInterfaceType(void){#if ENABLE_HID_INTERFACE && ENABLE_CDC_INTERFACE    PORT_DDR_SET(HWPIN_ISP_MOSI);    PORT_PIN_SET(HWPIN_ISP_MOSI);//    _delay_us(10);    PORT_DDR_CLR(HWPIN_ISP_MOSI);    PORT_PIN_CLR(HWPIN_ISP_MOSI);   /* deactivate pullup */    useHIDInterface = PORT_PIN_VALUE(HWPIN_ISP_MOSI) == 0;#elif ENABLE_HID_INTERFACE    useHIDInterface = 1;#elif !ENABLE_CDC_INTERFACE#error "You must set either ENABLE_HID_INTERFACE or ENABLE_CDC_INTERFACE in hardware.h!"#endif}/*20 pin HVSP / PP connector:    1 .... GND    2 .... Vtarget    3 .... HVSP SCI    4 .... RESET    16 ... HVSP SDO    18 ... HVSP SII    20 ... HVSP SDI * Timer usage: * Timer 0 [8 bit]: *   1/64 prescaler for timer interrupt * Timer 1 [16 bit]: *   PWM for voltage supply -> fastPWM mode *   f = 23.4 kHz -> prescaler = 1, 9 bit * Timer 2 [8 bit]: *   Clock generation for target device */static void hardwareInit(void){uchar   i, j;uchar   portB = 0, portC = 0, portD = 0, ddrB = 0, ddrC = 0, ddrD = 0;    UTIL_PBIT_SET(port, HWPIN_HVSP_SUPPLY);    UTIL_PBIT_SET(ddr, HWPIN_HVSP_SUPPLY);    UTIL_PBIT_CLR(port, HWPIN_SMPS_OUT);    UTIL_PBIT_SET(ddr, HWPIN_SMPS_OUT);    UTIL_PBIT_CLR(port, HWPIN_HVSP_HVRESET);    UTIL_PBIT_SET(ddr, HWPIN_HVSP_HVRESET);    UTIL_PBIT_CLR(port, HWPIN_HVSP_SCI);    UTIL_PBIT_SET(ddr, HWPIN_HVSP_SCI);    UTIL_PBIT_CLR(port, HWPIN_ISP_CLK);    UTIL_PBIT_SET(ddr, HWPIN_ISP_CLK);    UTIL_PBIT_CLR(port, HWPIN_ISP_DRIVER);    UTIL_PBIT_SET(ddr, HWPIN_ISP_DRIVER);    UTIL_PBIT_CLR(port, HWPIN_LED);    UTIL_PBIT_SET(ddr, HWPIN_LED);    UTIL_PBIT_CLR(port, HWPIN_ADC_SMPS);    UTIL_PBIT_CLR(ddr, HWPIN_ADC_SMPS);    UTIL_PBIT_CLR(port, HWPIN_ADC_VTARGET);    UTIL_PBIT_CLR(ddr, HWPIN_ADC_VTARGET);    UTIL_PBIT_CLR(port, HWPIN_ISP_SCK);    UTIL_PBIT_SET(ddr, HWPIN_ISP_SCK);    UTIL_PBIT_SET(port, HWPIN_ISP_MISO);    UTIL_PBIT_CLR(ddr, HWPIN_ISP_MISO);    UTIL_PBIT_CLR(port, HWPIN_ISP_MOSI);    UTIL_PBIT_SET(ddr, HWPIN_ISP_MOSI);    UTIL_PBIT_CLR(port, HWPIN_ISP_RESET);    UTIL_PBIT_SET(ddr, HWPIN_ISP_RESET);    UTIL_PBIT_SET(port, HWPIN_ISP_TXD);    UTIL_PBIT_SET(ddr, HWPIN_ISP_TXD);    UTIL_PBIT_SET(port, HWPIN_ISP_RXD);    UTIL_PBIT_CLR(ddr, HWPIN_ISP_RXD);    UTIL_PBIT_CLR(port, HWPIN_USB_DPLUS);    UTIL_PBIT_SET(ddr, HWPIN_USB_DPLUS);    UTIL_PBIT_CLR(port, HWPIN_USB_DMINUS);    UTIL_PBIT_SET(ddr, HWPIN_USB_DMINUS);    UTIL_PBIT_SET(port, HWPIN_JUMPER);    UTIL_PBIT_CLR(ddr, HWPIN_JUMPER);    UTIL_PBIT_CLR(port, HWPIN_HVSP_SII);    UTIL_PBIT_SET(ddr, HWPIN_HVSP_SII);    UTIL_PBIT_CLR(port, HWPIN_HVSP_SDI);    UTIL_PBIT_SET(ddr, HWPIN_HVSP_SDI);    UTIL_PBIT_CLR(port, HWPIN_HVSP_SDO);    UTIL_PBIT_CLR(ddr, HWPIN_HVSP_SDO);    PORTB = portB;    DDRB = ddrB;    PORTC = portC;    DDRC = ddrC;    PORTD = portD;    DDRD = ddrD;    j = 0;    while(--j){          /* USB Reset by device only required on Watchdog Reset */        i = 0;        while(--i);      /* delay >10ms for USB reset */    }    UTIL_PBIT_CLR(ddr, HWPIN_USB_DPLUS);    UTIL_PBIT_CLR(ddr, HWPIN_USB_DMINUS);    DDRD = ddrD;    /* timer 0 configuration: ~ 1.365 ms interrupt */    TCCR0 = 3;              /* 1/64 prescaler */    TIMSK = (1 << TOIE0);   /* enable timer0 overflow interrupt */        /* timer 1 configuration: ~23.4 kHz PWM (9 bit) */    TCCR1A = UTIL_BIN8(1000, 0010);  /* OC1A = PWM, OC1B disconnected, 9 bit */    TCCR1B = UTIL_BIN8(0000, 1001);  /* 9 bit, prescaler=1 */    OCR1A = 1;      /* set duty cycle to minimum */        /* timer 2 configuration */    TCCR2 = UTIL_BIN8(0000, 1001);  /* OC2 disconnected, prescaler=1 */    OCR2 = 2;       /* should give 3 MHz clock */}int main(void){    wdt_enable(WDTO_1S);    odDebugInit();#if ENABLE_DEBUG_INTERFACE    serialInit();#endif    readInterfaceType();    hardwareInit();    vregInit();    usbInit();    sei();    for(;;){    /* main event loop */        wdt_reset();        usbPoll();#if ENABLE_CDC_INTERFACE        if(!useHIDInterface && usbInterruptIsReady()){            static uchar sendEmptyFrame = 1, buffer[8];            /* start with empty frame because the host eats the first packet -- don't know why... */            int c;            uchar i = 0;            while(i < 8 && (c = stkGetTxByte()) >= 0){                buffer[i++] = c;            }            if(i > 0 || sendEmptyFrame){                sendEmptyFrame = i;     /* send an empty block after last data block to indicate transfer end */                usbSetInterrupt(buffer, i);            }        }#endif#if USE_DCD_REPORTING && ENABLE_CDC_INTERFACE        /* We need to report rx and tx carrier after open attempt */        if(usbInterruptIsReady3() && intr3Status != 0){            static uchar serialStateNotification[8] = {0xa1, 0x20, 0, 0, 0, 0, 2, 0};            static uchar serialStateData[2] = {3, 0};            if(intr3Status == 2){                usbSetInterrupt3(serialStateNotification, 8);            }else{                usbSetInterrupt3(serialStateData, 2);            }            intr3Status--;        }#endif    }    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产免费一区二区三区香蕉| 国产一区不卡精品| 一区二区三区欧美日| 亚洲综合色在线| 久久99热这里只有精品| 国产精品影音先锋| 在线观看视频一区二区欧美日韩| 欧美精品久久99| 亚洲欧洲另类国产综合| 亚洲国产精品一区二区www在线 | 国产麻豆日韩欧美久久| 日本韩国欧美在线| 久久精品日产第一区二区三区高清版 | 在线视频一区二区三区| 日韩欧美亚洲国产另类 | 色综合夜色一区| 欧美成人r级一区二区三区| 亚洲欧美日韩国产一区二区三区 | 国产三级一区二区| 五月天中文字幕一区二区| 成人一二三区视频| 欧美高清性hdvideosex| 亚洲综合精品自拍| 97久久人人超碰| 欧美激情在线一区二区三区| 日韩电影在线一区二区| 欧美在线短视频| 性久久久久久久| 91麻豆精品国产91久久久久久 | 欧美精品一区二区三区在线播放 | 在线不卡的av| 天天免费综合色| 制服丝袜av成人在线看| 亚洲综合久久av| 欧美日韩国产免费一区二区| 亚洲小说欧美激情另类| 欧美午夜电影一区| 亚洲午夜久久久久久久久电影网 | 国产精品白丝av| 日本一区二区不卡视频| 91免费版pro下载短视频| 亚洲精品福利视频网站| 欧美日韩中字一区| 蜜桃精品在线观看| 欧美极品少妇xxxxⅹ高跟鞋| 97se亚洲国产综合自在线不卡| 美女视频黄a大片欧美| 久久se精品一区精品二区| 综合色天天鬼久久鬼色| 99r国产精品| 亚洲激情校园春色| 欧美日本免费一区二区三区| 男人的天堂久久精品| 久久九九影视网| 91在线视频免费91| 狠狠久久亚洲欧美| 日韩不卡在线观看日韩不卡视频| 国产欧美一区二区精品秋霞影院| 在线影视一区二区三区| 成人午夜电影网站| 国产大陆亚洲精品国产| 国产精品看片你懂得| 久久久精品黄色| 日韩视频一区二区三区在线播放| 日本韩国欧美一区二区三区| 精品一区二区久久久| 日本不卡123| 日日欢夜夜爽一区| 免播放器亚洲一区| 亚洲欧美日韩小说| 伊人一区二区三区| 国产精品国产精品国产专区不片| wwwwww.欧美系列| 日韩欧美国产小视频| 91精品国产综合久久香蕉的特点| 色综合久久天天| 欧美日韩午夜精品| 欧美日韩一区二区三区四区| 欧美日韩精品一区视频| 欧美丝袜丝交足nylons图片| 精品视频一区二区三区免费| 色婷婷精品久久二区二区蜜臂av | 欧美一级日韩免费不卡| 欧美日韩精品一区二区在线播放| 91福利在线播放| 欧美一级精品大片| 国产日韩视频一区二区三区| 亚洲国产精品二十页| 亚洲另类在线制服丝袜| 亚洲大片精品永久免费| 美女在线视频一区| 成人午夜电影久久影院| 在线免费观看一区| 精品免费国产一区二区三区四区| 中文字幕 久热精品 视频在线 | 欧美人体做爰大胆视频| 国产亚洲欧美色| 中文字幕在线观看不卡| 日韩高清欧美激情| kk眼镜猥琐国模调教系列一区二区| 欧美日韩一区二区在线观看| 亚洲国产精品激情在线观看| 香蕉成人啪国产精品视频综合网| 日本中文在线一区| 99久久伊人精品| 欧美精品一区二区久久久| 亚洲摸摸操操av| 国产精品一级片| 欧美一级免费大片| 亚洲激情图片一区| 粉嫩13p一区二区三区| 91精品久久久久久久99蜜桃| 亚洲精品v日韩精品| 高清不卡一二三区| 2020国产成人综合网| 午夜婷婷国产麻豆精品| 在线一区二区三区做爰视频网站| 国产欧美精品区一区二区三区| 日韩在线一区二区三区| 欧美视频一区二区三区在线观看| 自拍偷拍亚洲激情| 成人激情综合网站| 亚洲一区二区三区四区的| 色999日韩国产欧美一区二区| 欧美国产日韩a欧美在线观看| 国产在线乱码一区二区三区| 2023国产精品自拍| 国产成人在线观看| 日本一区二区久久| 色综合天天综合网国产成人综合天 | 寂寞少妇一区二区三区| 久久影院午夜片一区| 国产精品123| 亚洲成人tv网| 欧美在线|欧美| 免费成人在线影院| 国产日韩av一区| 在线视频你懂得一区二区三区| 亚洲国产日日夜夜| 精品人在线二区三区| 国产成人av一区| 亚洲国产一二三| 久久久精品人体av艺术| 91麻豆福利精品推荐| 免费一级片91| 亚洲色图欧美在线| 色综合咪咪久久| 99re8在线精品视频免费播放| 亚洲18影院在线观看| 精品人伦一区二区色婷婷| 99精品欧美一区二区三区小说 | 国产在线国偷精品产拍免费yy | 91在线观看一区二区| 日韩精品一二区| 亚洲欧美韩国综合色| 国产日韩影视精品| 精品播放一区二区| 欧美精选在线播放| 日本高清成人免费播放| 欧美日韩中文字幕精品| 精品福利在线导航| 欧美日韩一区二区三区不卡| 国产乱码精品一区二区三| 亚洲国产一二三| 一区二区三区免费观看| 国产精品乱人伦| 国产免费成人在线视频| 久久久不卡网国产精品二区 | 亚洲最大成人网4388xx| 亚洲免费观看高清在线观看| 亚洲蜜臀av乱码久久精品| 国产精品视频yy9299一区| 久久欧美一区二区| 精品欧美乱码久久久久久| 亚洲精品一区在线观看| 久久久国产午夜精品| 国产成人免费视频精品含羞草妖精 | 懂色av一区二区三区免费观看 | 久久综合九色综合久久久精品综合 | 精品不卡在线视频| 日韩美一区二区三区| 亚洲国产成人一区二区三区| 欧美韩国一区二区| 亚洲综合一区二区| 美女在线视频一区| 成人国产精品视频| 欧美肥妇bbw| 久久一二三国产| 亚洲成av人片在线观看无码| 国产乱子伦一区二区三区国色天香| 国产精品亚洲第一区在线暖暖韩国| 春色校园综合激情亚洲| 午夜精品久久久久久久久久久| 九九精品视频在线看| 久草在线在线精品观看| 一本到高清视频免费精品| 日韩亚洲欧美一区| 亚洲素人一区二区| 狠狠色丁香久久婷婷综合丁香| 一本色道a无线码一区v|