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

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

?? main.c

?? amega8 實現的摸擬USB芯片的AVR程序
?? C
字號:
/*  USBasp - USB in-circuit programmer for Atmel AVR controllers  Thomas Fischl <tfischl@gmx.de>   License:  The project is built with AVR USB driver by Objective Development, which is  published under an own licence based on the GNU General Public License (GPL).  USBasp is also distributed under this enhanced licence. See Documentation.  Target.........: ATMega8 at 12 MHz   Creation Date..: 2005-02-20  Last change....: 2005-04-20  PC2 SCK speed option. GND  -> slow (8khz SCK),                        open -> fast (375kHz SCK)*/#include <avr/io.h>//#include <avr/signal.h>#include <avr/interrupt.h>#include <avr/pgmspace.h>#include <avr/wdt.h>#include "usbdrv/usbdrv.h"#include "isp.h"#include "clock.h"#define USBASP_FUNC_CONNECT     1#define USBASP_FUNC_DISCONNECT  2#define USBASP_FUNC_TRANSMIT    3#define USBASP_FUNC_READFLASH   4#define USBASP_FUNC_ENABLEPROG  5#define USBASP_FUNC_WRITEFLASH  6#define USBASP_FUNC_READEEPROM  7#define USBASP_FUNC_WRITEEEPROM 8#define PROG_STATE_IDLE         0#define PROG_STATE_WRITEFLASH   1#define PROG_STATE_READFLASH    2#define PROG_STATE_READEEPROM   3#define PROG_STATE_WRITEEEPROM  4#define PROG_BLOCKFLAG_FIRST    1#define PROG_BLOCKFLAG_LAST     2#define ledRedOn()    PORTC &= ~(1 << PC1)#define ledRedOff()   PORTC |= (1 << PC1)#define ledGreenOn()  PORTC &= ~(1 << PC0)#define ledGreenOff() PORTC |= (1 << PC0)static uchar replyBuffer[8];static uchar prog_state = PROG_STATE_IDLE;static unsigned int prog_address;static unsigned int prog_nbytes = 0;static uchar prog_pagesize;static uchar prog_blockflags;static uchar prog_pagecounter;uchar usbFunctionSetup(uchar data[8]) {  uchar len = 0;  if(data[1] == USBASP_FUNC_CONNECT){    /* set SCK speed */    if ((PINC & (1 << PC2)) == 0) {      ispSetSCKOption(ISP_SCK_SLOW);    } else {      ispSetSCKOption(ISP_SCK_FAST);    }    ispConnect();    ledRedOn();      } else if (data[1] == USBASP_FUNC_DISCONNECT) {    ispDisconnect();    ledRedOff();  } else if (data[1] == USBASP_FUNC_TRANSMIT) {    replyBuffer[0] = ispTransmit(data[2]);    replyBuffer[1] = ispTransmit(data[3]);    replyBuffer[2] = ispTransmit(data[4]);    replyBuffer[3] = ispTransmit(data[5]);    len = 4;  } else if (data[1] == USBASP_FUNC_READFLASH) {    prog_address = (data[3] << 8) | data[2];    prog_nbytes = (data[7] << 8) | data[6];    prog_state = PROG_STATE_READFLASH;    len = 0xff; /* multiple in */  } else if (data[1] == USBASP_FUNC_READEEPROM) {    prog_address = (data[3] << 8) | data[2];    prog_nbytes = (data[7] << 8) | data[6];    prog_state = PROG_STATE_READEEPROM;    len = 0xff; /* multiple in */  } else if (data[1] == USBASP_FUNC_ENABLEPROG) {    replyBuffer[0] = ispEnterProgrammingMode();;    len = 1;   } else if (data[1] == USBASP_FUNC_WRITEFLASH) {    prog_address = (data[3] << 8) | data[2];    prog_pagesize = data[4];    prog_blockflags = data[5];    if (prog_blockflags & PROG_BLOCKFLAG_FIRST) {      prog_pagecounter = prog_pagesize;    }    prog_nbytes = (data[7] << 8) | data[6];    prog_state = PROG_STATE_WRITEFLASH;    len = 0xff; /* multiple out */  } else if (data[1] == USBASP_FUNC_WRITEEEPROM) {    prog_address = (data[3] << 8) | data[2];    prog_pagesize = 0;    prog_blockflags = 0;    prog_nbytes = (data[7] << 8) | data[6];    prog_state = PROG_STATE_WRITEEEPROM;    len = 0xff; /* multiple out */  }  usbMsgPtr = replyBuffer;       return len;}uchar usbFunctionRead(uchar *data, uchar len) {  uchar i;  /* check if programmer is in correct read state */  if ((prog_state != PROG_STATE_READFLASH) &&      (prog_state != PROG_STATE_READEEPROM)) {    return 0xff;  }  /* fill packet */  for (i = 0; i < len; i++) {    if (prog_state == PROG_STATE_READFLASH) {      data[i] = ispReadFlash(prog_address);    } else {      data[i] = ispReadEEPROM(prog_address);    }    prog_address++;  }  /* last packet? */  if (len < 8) {    prog_state = PROG_STATE_IDLE;  }  return len;}uchar usbFunctionWrite(uchar *data, uchar len) {  uchar i;  /* check if programmer is in correct write state */  if ((prog_state != PROG_STATE_WRITEFLASH) &&      (prog_state != PROG_STATE_WRITEEEPROM)) {    return 0xff;  }    for (i = 0; i < len; i++) {    if (prog_state == PROG_STATE_WRITEFLASH) {      /* Flash */      if (prog_pagesize == 0) {	/* not paged */	ispWriteFlash(prog_address, data[i], 1);      } else {	/* paged */	ispWriteFlash(prog_address, data[i], 0);	prog_pagecounter --;	if (prog_pagecounter == 0) {	  ispFlushPage(prog_address, data[i]);	  prog_pagecounter = prog_pagesize;	}            }    } else {      /* EEPROM */      ispWriteEEPROM(prog_address, data[i]);    }        prog_nbytes --;    if (prog_nbytes == 0) {      prog_state = PROG_STATE_IDLE;      if ((prog_blockflags & PROG_BLOCKFLAG_LAST) && 	  (prog_pagecounter != prog_pagesize)) {	/* last block and page flush pending, so flush it now */	ispFlushPage(prog_address, data[i]);      }    }    prog_address ++;  }  return 0;}int main(void){  PORTD = 0;  PORTB = 0;		/* no pullups on USB and ISP pins */  DDRD = ~(1 << 2);	/* all outputs except PD2 = INT0 */  DDRB = 0;             /* all USB and ISP pins inputs */    DDRC = 0x03;          /* all inputs except PC0, PC1 */  PORTC = 0xfe;  clockInit();          /* init timer */  ispSetSCKOption(ISP_SCK_FAST);    usbInit();  sei();  for(;;){	        /* main event loop */    usbPoll();  }  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品国产综合久久久久| 2023国产精品自拍| 蜜臀av国产精品久久久久| 欧美一区二区福利视频| 夜夜夜精品看看| 欧美一级一级性生活免费录像| 美女视频黄久久| 中文字幕中文在线不卡住| 色综合久久中文字幕| 日韩成人av影视| 久久亚洲精品国产精品紫薇| 成人在线综合网站| 亚洲最色的网站| 久久美女艺术照精彩视频福利播放| 成人免费视频一区| 日韩一区精品字幕| 国产精品成人免费精品自在线观看| 欧美一区二区三区影视| 91麻豆视频网站| 99视频热这里只有精品免费| 国产不卡视频一区二区三区| 国产成人精品一区二区三区四区| 美女诱惑一区二区| 麻豆免费看一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 国产精品私人影院| 久久综合色一综合色88| 久久久亚洲精品一区二区三区| 99精品欧美一区二区三区小说| 国产一区二区三区蝌蚪| 青草av.久久免费一区| 日产欧产美韩系列久久99| 亚洲国产wwwccc36天堂| 亚洲伊人伊色伊影伊综合网 | 白白色 亚洲乱淫| 不卡一区二区三区四区| 99在线热播精品免费| 91在线视频播放地址| 在线精品国精品国产尤物884a| 欧美另类videos死尸| 日韩视频免费观看高清完整版| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品入口麻豆九色| 一区二区三区欧美日韩| 欧美aaa在线| 北岛玲一区二区三区四区| 欧美精品v日韩精品v韩国精品v| 精品国产网站在线观看| 亚洲蜜臀av乱码久久精品| 免费国产亚洲视频| www.成人在线| 亚洲精品一区二区三区四区高清| 国产精品成人一区二区艾草| 日韩精品国产欧美| 91女神在线视频| 国产日韩欧美在线一区| 日韩精品电影一区亚洲| 91国偷自产一区二区三区观看| 2024国产精品视频| 韩国v欧美v日本v亚洲v| 欧美午夜在线一二页| 欧美国产精品一区| 岛国一区二区三区| 2014亚洲片线观看视频免费| 丝袜美腿亚洲色图| 欧美日韩卡一卡二| 亚洲美女在线国产| 欧洲一区在线观看| 亚洲一二三区不卡| 91精品福利视频| 亚洲精品国产第一综合99久久 | 94-欧美-setu| 欧美tk—视频vk| 国产高清亚洲一区| 亚洲欧美aⅴ...| 久久影音资源网| 在线一区二区观看| 国产露脸91国语对白| 亚洲动漫第一页| 久久久久88色偷偷免费| 欧美视频在线播放| 99亚偷拍自图区亚洲| 极品少妇xxxx偷拍精品少妇| 亚洲国产中文字幕| 国产精品国产三级国产a| 精品国产第一区二区三区观看体验 | 久久av中文字幕片| 亚洲精品成人少妇| 欧美国产乱子伦 | 日韩码欧中文字| 精品国产免费久久| 欧美日韩国产欧美日美国产精品| 国产福利精品导航| 久久99精品国产麻豆婷婷洗澡| 夜夜嗨av一区二区三区| 国产精品伦一区| 久久久三级国产网站| 日韩欧美亚洲国产精品字幕久久久| 欧美视频在线不卡| 欧美色大人视频| 在线观看不卡一区| 91高清视频免费看| 在线免费观看日韩欧美| 日本精品一区二区三区四区的功能| 从欧美一区二区三区| 成人中文字幕在线| 成人性生交大片免费| 成人精品一区二区三区四区| 国产精品99久久不卡二区| 国产在线视频精品一区| 麻豆精品久久精品色综合| 日本视频在线一区| 欧美96一区二区免费视频| 日韩国产欧美在线播放| 蜜臀国产一区二区三区在线播放| 日本不卡1234视频| 老司机精品视频导航| 国产一区二区免费在线| 国产一区二区三区在线观看免费| 国产精品2024| youjizz国产精品| 91尤物视频在线观看| 在线免费亚洲电影| 欧美乱妇23p| 亚洲精品在线观| 国产精品午夜春色av| 亚洲免费电影在线| 日韩精品电影一区亚洲| 久久99精品国产.久久久久久| 国产一区高清在线| 99久久亚洲一区二区三区青草| 色婷婷久久久亚洲一区二区三区| 欧美在线一区二区| 欧美一区二区三区白人| 久久亚洲捆绑美女| 亚洲另类中文字| 三级欧美韩日大片在线看| 韩日av一区二区| 99九九99九九九视频精品| 欧美日韩一区 二区 三区 久久精品| 在线播放91灌醉迷j高跟美女 | 91精品午夜视频| 国产欧美精品日韩区二区麻豆天美| 成人欧美一区二区三区视频网页| 亚洲成人av电影| 国产·精品毛片| 在线观看91视频| 久久精品视频免费观看| 一级中文字幕一区二区| 久草在线在线精品观看| a4yy欧美一区二区三区| 日韩欧美一级片| 亚洲女子a中天字幕| 理论电影国产精品| 日本韩国一区二区三区视频| 日韩欧美的一区| 亚洲一线二线三线久久久| 国产综合色在线视频区| 欧美三级乱人伦电影| 久久精品一区二区三区不卡 | 亚洲欧美成人一区二区三区| 青娱乐精品在线视频| 91麻豆国产在线观看| 26uuu亚洲| 免费成人美女在线观看| 91麻豆精品视频| 国产女同性恋一区二区| 视频一区视频二区在线观看| 91网站最新地址| 久久奇米777| 蜜臀久久99精品久久久久久9| 91官网在线免费观看| 国产精品妹子av| 国产伦理精品不卡| 欧美一级免费观看| 亚洲午夜久久久久久久久电影网| 成人午夜视频网站| 欧美成人r级一区二区三区| 天天免费综合色| 欧美日韩久久久一区| 一区二区高清免费观看影视大全| 成人aa视频在线观看| 国产欧美日韩精品一区| 国产做a爰片久久毛片| 精品精品欲导航| 久久精品99国产精品| 日韩视频免费直播| 日本91福利区| 欧美一级一区二区| 男女激情视频一区| 欧美一区二区三区视频免费| 日韩影视精彩在线| 69堂精品视频| 日本中文字幕一区二区视频| 欧美精品免费视频| 日韩av电影免费观看高清完整版在线观看 | 欧美日韩国产天堂| 肉色丝袜一区二区| 日韩一二三四区| 精品无人区卡一卡二卡三乱码免费卡|