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

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

?? isp.c

?? Atmega8 ASP USB下載原代碼
?? C
字號:
/*  isp.c - part of USBasp  Autor..........: Thomas Fischl <tfischl@gmx.de>   Description....: Provides functions for communication/programming                   over ISP interface  Licence........: GNU GPL v2 (see Readme.txt)  Creation Date..: 2005-02-23  Last change....: 2007-07-23*/#include <avr/io.h>#include "isp.h"#include "clock.h"#define spiHWdisable() SPCR = 0void spiHWenable(uchar type) {	if(type == 0){			  /* enable SPI, master, 375kHz SCK */	  SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1);	  SPSR = (1 << SPI2X);	}else{	  				/* enable SPI, master, 93.75kHz SCK */	  SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1);	  SPSR = 0;	}}void ispSetSCKOption(uchar option) {  if (option == 0) {    /* use software spi */    ispTransmit = ispTransmit_sw;    //    spiHWdisable();  } else {    /* use hardware spi */    ispTransmit = ispTransmit_hw;  }}  void ispDelay() {  uint8_t starttime = TIMERVALUE;  while ((uint8_t) (TIMERVALUE - starttime) < 12) { }}void ispConnect() {  /* all ISP pins are inputs before */  /* now set output pins */  ISP_DDR |= (1 << ISP_RST) | (1 << ISP_SCK) | (1 << ISP_MOSI);	if(chip==ATM){			/* reset device */ 		ISP_OUT &= ~(1 << ISP_RST);   /* RST low */  	ISP_OUT &= ~(1 << ISP_SCK);   /* SCK low */  		/* positive reset pulse > 2 SCK (target) */  	ispDelay();  	ISP_OUT |= (1 << ISP_RST);    /* RST high */  	ispDelay();                  	ISP_OUT &= ~(1 << ISP_RST);   /* RST low */  	ispDelay();  	if(ispTransmit==ispTransmit_hw){    	spiHWenable(0);  	}    }else{  	  /* reset device */  	ISP_OUT |= (1 << ISP_RST);   /* RST high */  	ISP_OUT &= ~(1 << ISP_SCK);   /* SCK low */  		/* positive reset pulse > 2 SCK (target) */  	clockWait(15);  	ISP_OUT &= ~(1 << ISP_RST);    /* RST low */ 		clockWait(15);                  	ISP_OUT |= (1 << ISP_RST);   /* RST high */  	clockWait(15);	}}void ispDisconnect() {    /* set all ISP pins inputs */  ISP_DDR &= ~((1 << ISP_RST) | (1 << ISP_SCK) | (1 << ISP_MOSI));  /* switch pullups off */  ISP_OUT &= ~((1 << ISP_RST) | (1 << ISP_SCK) | (1 << ISP_MOSI));  /* disable hardware SPI */  spiHWdisable();}uchar ispTransmit_sw(uchar send_byte) {  uchar rec_byte = 0;  uchar i;  for (i = 0; i < 8; i++) {    /* set MSB to MOSI-pin */    if ((send_byte & 0x80) != 0) {      ISP_OUT |= (1 << ISP_MOSI);  /* MOSI high */    } else {      ISP_OUT &= ~(1 << ISP_MOSI); /* MOSI low */    }    /* shift to next bit */    send_byte  = send_byte << 1;    /* receive data */    rec_byte = rec_byte << 1;    if ((ISP_IN & (1 << ISP_MISO)) != 0) {      rec_byte++;    }    /* pulse SCK */    ISP_OUT |= (1 << ISP_SCK);     /* SCK high */    ispDelay();    ISP_OUT &= ~(1 << ISP_SCK);    /* SCK low */    ispDelay();  }      return rec_byte;}uchar ispTransmit_hw(uchar send_byte) {  SPDR = send_byte;    while (!(SPSR & (1 << SPIF)));  return SPDR;}    uchar ispEnterProgrammingMode() {  uchar check;  uchar count=16;  chip=ATM;  ispConnect();  while(count--){    ispTransmit(0xAC);    ispTransmit(0x53);    check=ispTransmit(0);    ispTransmit(0);        if(check==0x53){      return 0;    }    spiHWdisable();        /* pulse SCK */    ISP_OUT|=(1<<ISP_SCK);     /* SCK high */    ispDelay();    ISP_OUT&= ~(1<<ISP_SCK);    /* SCK low */    ispDelay();    if(ispTransmit==ispTransmit_hw)spiHWenable(0);   }    count=16;  chip=S5x;  if(ispTransmit==ispTransmit_hw)spiHWenable(1);  ispConnect();  while(count--){    ispTransmit(0xAC);    ispTransmit(0x53);    ispTransmit(0);    check=ispTransmit(0);        if(check==0x69){      return 0;    }    spiHWdisable();    /* pulse SCK */    ISP_OUT|=(1<<ISP_SCK);     /* SCK high */    ispDelay();    ISP_OUT&= ~(1<<ISP_SCK);    /* SCK low */    ispDelay();    if(ispTransmit==ispTransmit_hw)spiHWenable(1);  }    return 1;  /* error: device dosn't answer */}uchar ispReadFlash(unsigned long address) {	if(chip==ATM){ 	 ispTransmit(0x20|((address & 1)<<3));  	ispTransmit(address>>9);  	ispTransmit(address>>1);  }else{  	ispTransmit(0x20);  	ispTransmit(address>>8);  	ispTransmit(address);  }  return ispTransmit(0);}uchar ispWriteFlash(unsigned long address, uchar data, uchar pollmode) {	if(chip==ATM){  	ispTransmit(0x40|((address&1)<<3));  	ispTransmit(address>>9);  	ispTransmit(address>>1);  	ispTransmit(data);  	if(pollmode==0)return 0;  	if(data == 0x7F){    	clockWait(15);    	return 0; 	  }else{    	uchar retries=30;    	uint8_t starttime=TIMERVALUE;    	while(retries!=0){    	  if(ispReadFlash(address)!=0x7F)return 0;         	  if((uint8_t)(TIMERVALUE-starttime)>CLOCK_T_320us){					starttime=TIMERVALUE;					retries--;    	  }    	}    }   }else{      ispTransmit(0x40);  	ispTransmit(address >> 8);  	ispTransmit(address);  	ispTransmit(data);  	clockWait(2);  	return 0;   }   return 1; /* error */}uchar ispFlushPage(unsigned long address, uchar pollvalue) {  ispTransmit(0x4C);  ispTransmit(address >> 9);  ispTransmit(address >> 1);  ispTransmit(0);  if (pollvalue == 0xFF) {    clockWait(15);    return 0;  } else {    /* polling flash */    uchar retries = 30;    uint8_t starttime = TIMERVALUE;    while (retries != 0) {      if (ispReadFlash(address) != 0xFF) {	return 0;      };      if ((uint8_t) (TIMERVALUE - starttime) > CLOCK_T_320us) {	starttime = TIMERVALUE;	retries --;      }    }    return 1; /* error */  }    }uchar ispReadEEPROM(unsigned int address) {  ispTransmit(0xA0);  ispTransmit(address >> 8);  ispTransmit(address);  return ispTransmit(0);}uchar ispWriteEEPROM(unsigned int address, uchar data) {  ispTransmit(0xC0);  ispTransmit(address >> 8);  ispTransmit(address);  ispTransmit(data);  clockWait(30); // wait 9,6 ms   return 0;  /*   if (data == 0xFF) {    clockWait(30); // wait 9,6 ms     return 0;  } else {    // polling eeprom     uchar retries = 30; // about 9,6 ms     uint8_t starttime = TIMERVALUE;    while (retries != 0) {      if (ispReadEEPROM(address) != 0xFF) {	return 0;      };      if ((uint8_t) (TIMERVALUE - starttime) > CLOCK_T_320us) {	starttime = TIMERVALUE;	retries --;      }    }    return 1; // error   }  */}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
顶级嫩模精品视频在线看| 精品国产百合女同互慰| 欧美一区二区三区啪啪| 国产农村妇女毛片精品久久麻豆| 一区二区日韩电影| 国产99精品视频| 欧美大胆人体bbbb| 亚洲国产精品麻豆| 91原创在线视频| 国产农村妇女毛片精品久久麻豆| 毛片av一区二区| 欧美日本韩国一区二区三区视频 | 国产成人综合在线| 678五月天丁香亚洲综合网| 国产精品久99| 国产精品白丝jk白祙喷水网站| 日韩欧美国产精品| 免费高清视频精品| 91精品国产欧美一区二区| 亚洲福利视频三区| 色婷婷久久综合| 亚洲伦理在线精品| 99国产麻豆精品| 中文字幕中文字幕在线一区| 国产jizzjizz一区二区| 精品国产乱码久久久久久老虎| 日韩精品1区2区3区| 欧美精品九九99久久| 天天亚洲美女在线视频| 欧美日韩精品一区二区天天拍小说| 一区二区三区在线观看网站| 色噜噜偷拍精品综合在线| 亚洲欧美视频在线观看| 一本久道中文字幕精品亚洲嫩| 亚洲欧洲在线观看av| 99久久精品免费| 亚洲视频在线观看一区| 91精品1区2区| 五月综合激情网| 日韩欧美一二三四区| 捆绑紧缚一区二区三区视频| 欧美一级二级三级蜜桃| 韩国av一区二区| 国产精品色哟哟| 色老汉一区二区三区| 午夜电影一区二区三区| 日韩小视频在线观看专区| 久久国产人妖系列| 中文字幕不卡在线观看| 色av成人天堂桃色av| 午夜精品福利一区二区三区蜜桃| 在线成人av影院| 国产馆精品极品| 尤物在线观看一区| 日韩亚洲欧美成人一区| 丁香天五香天堂综合| 亚洲精品少妇30p| 欧美一区二视频| 成人黄色小视频在线观看| 曰韩精品一区二区| 337p日本欧洲亚洲大胆色噜噜| 成人免费va视频| 亚洲成人av福利| 国产欧美精品一区| 欧美肥妇毛茸茸| 波多野结衣在线aⅴ中文字幕不卡| 亚洲美女电影在线| 精品国产免费视频| 91国内精品野花午夜精品| 麻豆精品一区二区av白丝在线| 国产欧美视频一区二区| 欧美日韩一区二区三区不卡| 久久99久国产精品黄毛片色诱| 国产精品传媒入口麻豆| 欧美自拍偷拍一区| 国产乱人伦偷精品视频免下载 | 99国内精品久久| 美女任你摸久久| 亚洲人成网站色在线观看| 日韩一二三四区| 欧美日韩亚州综合| 97久久久精品综合88久久| 久久99精品国产91久久来源| 一区二区三区丝袜| 久久先锋资源网| 91精品国产综合久久国产大片| jiyouzz国产精品久久| 久久精品国产999大香线蕉| 亚洲美女偷拍久久| 亚洲国产精品精华液ab| 欧美videos大乳护士334| 欧美日韩国产影片| 色噜噜狠狠成人网p站| 成人黄色一级视频| 国产大陆精品国产| 国产一区二区三区香蕉| 强制捆绑调教一区二区| 亚洲成a人v欧美综合天堂| 国产精品理论片| 欧美国产一区在线| 久久精品夜色噜噜亚洲a∨| 精品日韩欧美一区二区| 欧美精品日韩综合在线| 欧美日韩一区视频| 欧美色偷偷大香| 91麻豆精品一区二区三区| 成人自拍视频在线| 国产经典欧美精品| 国产美女精品人人做人人爽| 九色|91porny| 久草这里只有精品视频| 欧美a级一区二区| 日本亚洲最大的色成网站www| 亚洲国产欧美在线| 午夜精品视频在线观看| 亚洲chinese男男1069| 亚洲大片免费看| 午夜精品免费在线观看| 五月综合激情网| 美女免费视频一区| 国内一区二区视频| 国产成人精品免费一区二区| 成人性视频网站| 97久久精品人人做人人爽| 一本一道波多野结衣一区二区| 91福利资源站| 欧美一区二区在线视频| 精品少妇一区二区三区| 久久久久久**毛片大全| 国产精品少妇自拍| 一区二区三区中文在线观看| 亚洲国产综合色| 日韩制服丝袜先锋影音| 激情av综合网| 丁香桃色午夜亚洲一区二区三区| av在线不卡网| 欧美日韩精品一区二区三区四区| 4438成人网| 久久综合九色综合97婷婷女人| 国产网站一区二区三区| 亚洲最快最全在线视频| 日韩精品五月天| 高清在线不卡av| 欧美性大战久久| 日韩欧美成人午夜| 国产精品毛片a∨一区二区三区| 亚洲人成网站精品片在线观看| 污片在线观看一区二区| 国产黄色精品网站| 欧美色成人综合| 久久久av毛片精品| 亚洲一区二区在线观看视频 | 午夜成人免费视频| 国产成人免费视频网站| 欧美色涩在线第一页| www一区二区| 亚洲一二三级电影| 国产精品自产自拍| 欧美日韩精品一区视频| 欧美国产精品专区| 日产国产高清一区二区三区| 成人av在线资源网| 精品美女一区二区| 一区2区3区在线看| 国产成人免费在线视频| 欧美精品一二三| 亚洲三级小视频| 国产伦理精品不卡| 欧美日韩不卡一区二区| 最新中文字幕一区二区三区| 看电视剧不卡顿的网站| 91久久精品国产91性色tv| 欧美激情一区三区| 蜜桃传媒麻豆第一区在线观看| 色综合久久久久网| 欧美激情一区二区三区全黄| 美女诱惑一区二区| 欧美丰满美乳xxx高潮www| 一区二区三区四区不卡在线| 成人深夜在线观看| 久久这里都是精品| 久久精品国产久精国产| 91精品国产丝袜白色高跟鞋| 亚洲精品日产精品乱码不卡| 处破女av一区二区| 久久久久国产精品麻豆| 美女脱光内衣内裤视频久久影院| 欧美性受极品xxxx喷水| 亚洲欧美激情在线| 91丨porny丨在线| 中文字幕av在线一区二区三区| 国产精品99久久久久久似苏梦涵 | 国产精品传媒在线| 成人av免费网站| 中文文精品字幕一区二区| 国产不卡一区视频| 国产欧美日韩视频在线观看| 国产高清成人在线| 国产日韩欧美在线一区| 国产精品88av|