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

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

?? isp.c

?? USB programmer For AVR
?? C
字號:
/*  isp.c - part of USBasp  Autor..........: Thomas Fischl <tfischl@gmx.de>   Description....: Provides functions for communication/programming                   over ISP interface  Licence........: Free under certain conditions. See Documentation.  Creation Date..: 2005-02-23  Last change....: 2005-04-20*/#include <avr/io.h>#include "isp.h"#include "clock.h"#define spiHWdisable() SPCR = 0void spiHWenable() {  /* enable SPI, master, 375kHz SCK */  SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1);  SPSR = (1 << SPI2X);}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);  /* 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 */  if (ispTransmit == ispTransmit_hw) {    spiHWenable();  }}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 = 32;  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();    }    }    return 1;  /* error: device dosn't answer */}uchar ispReadFlash(unsigned int address) {  ispTransmit(0x20 | ((address & 1) << 3));  ispTransmit(address >> 9);  ispTransmit(address >> 1);  return ispTransmit(0);}uchar ispWriteFlash(unsigned int address, uchar data, uchar pollmode) {  /* 0xFF is value after chip erase, so skip programming   if (data == 0xFF) {    return 0;  }  */  ispTransmit(0x40 | ((address & 1) << 3));  ispTransmit(address >> 9);  ispTransmit(address >> 1);  ispTransmit(data);  if (pollmode == 0)    return 0;  if (data == 0x7F) {    clockWait(15); /* wait 4,8 ms */    return 0;  } else {    /* polling flash */    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 --;      }    }    return 1; /* error */  }}uchar ispFlushPage(unsigned int 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一区二区三区免费野_久草精品视频
久久精品亚洲一区二区三区浴池| 尤物av一区二区| 黑人巨大精品欧美一区| 久久影院电视剧免费观看| 精品午夜久久福利影院| 久久亚洲一级片| 成人性生交大片免费看在线播放 | 91麻豆精品91久久久久久清纯| 视频一区二区中文字幕| 欧美变态tickle挠乳网站| 国产乱国产乱300精品| 国产精品欧美一区二区三区| 99精品久久免费看蜜臀剧情介绍| av激情成人网| 欧美乱妇20p| 亚洲美女屁股眼交3| 国产在线视频不卡二| 日韩午夜三级在线| 日本午夜一本久久久综合| 91老师国产黑色丝袜在线| 国产精品区一区二区三区| 国产精品12区| 国产欧美日韩三区| 国产精品18久久久久久久久久久久 | 综合分类小说区另类春色亚洲小说欧美| 91网站最新地址| 日韩黄色小视频| 国产精品人成在线观看免费| 欧美日韩国产免费| 国产伦理精品不卡| 一区二区免费视频| 国产亚洲精品bt天堂精选| 精品视频一区 二区 三区| 国产综合色在线视频区| 亚洲日本va在线观看| 欧美一级理论性理论a| 91亚洲精品一区二区乱码| 久久草av在线| 亚洲一区在线观看视频| 国产亚洲精品福利| 91精品国产综合久久蜜臀| 成人黄色在线网站| 久久99这里只有精品| 亚洲一二三四在线观看| 国产视频911| 日韩西西人体444www| 色婷婷综合久久| 国产精品影视网| 日本vs亚洲vs韩国一区三区 | 五月天视频一区| 中文字幕一区三区| www国产精品av| 8x福利精品第一导航| 99综合电影在线视频| 国产精品1区二区.| 久久国产精品一区二区| 亚洲成人在线免费| 一区二区三区精品| 亚洲免费在线播放| 国产精品久久久久久久第一福利 | 在线成人免费视频| 欧洲av一区二区嗯嗯嗯啊| youjizz久久| 成人黄色综合网站| 不卡高清视频专区| 成人一区二区三区| 欧美在线免费观看亚洲| 国产精品99久久久| 国产精华液一区二区三区| 日韩av不卡在线观看| 视频一区在线视频| 午夜精品久久久久久久99水蜜桃 | 欧美午夜视频网站| 色偷偷久久人人79超碰人人澡| 国产精品午夜免费| av在线不卡电影| 精品一区二区三区在线观看| 最新中文字幕一区二区三区| 欧美一区二区三区白人| 91污在线观看| 国产成人在线观看| 免费成人性网站| 亚洲精品国产成人久久av盗摄| 亚洲精品在线一区二区| 欧美日韩国产乱码电影| 99免费精品在线观看| 免费观看30秒视频久久| 亚洲一区二区欧美日韩 | 亚洲成av人片一区二区三区| 亚洲成a人v欧美综合天堂下载| 日韩—二三区免费观看av| 麻豆精品一区二区三区| 国内精品不卡在线| 国产91丝袜在线播放0| av网站一区二区三区| 91激情在线视频| 欧美精品在线观看一区二区| 日韩欧美国产麻豆| 中文字幕成人在线观看| 亚洲精品免费一二三区| 亚洲国产成人va在线观看天堂| 青青草原综合久久大伊人精品优势| 久久99精品久久久久久国产越南 | 一本久道中文字幕精品亚洲嫩| 欧美性色aⅴ视频一区日韩精品| 欧美人牲a欧美精品| 久久综合av免费| 亚洲人午夜精品天堂一二香蕉| 日本道免费精品一区二区三区| 免费成人你懂的| 麻豆91在线观看| 青青草91视频| 麻豆精品国产传媒mv男同| 免费观看在线色综合| 久久久蜜臀国产一区二区| 国产女人水真多18毛片18精品视频| 亚洲欧美一区二区三区久本道91 | 在线观看亚洲精品视频| 精品蜜桃在线看| 亚洲精品国产无套在线观| 精品一区二区三区的国产在线播放 | 99这里都是精品| 91精品国产入口在线| 国产精品高潮呻吟| 免费看欧美女人艹b| 99re热这里只有精品视频| 欧美电影免费观看高清完整版在线观看| 欧美经典一区二区| 免费在线视频一区| 日本韩国欧美在线| 日本强好片久久久久久aaa| 日韩在线一区二区三区| 久久er精品视频| 不卡一区二区三区四区| 欧美日韩一区久久| 日韩欧美国产综合| 国产精品免费视频网站| 悠悠色在线精品| 日韩在线观看一区二区| 欧美日韩在线播放一区| 亚洲人成电影网站色mp4| 捆绑调教一区二区三区| 91国偷自产一区二区使用方法| 久久综合九色综合久久久精品综合 | 精品国产免费视频| 日韩欧美国产系列| 日韩欧美综合在线| 日韩一区二区免费在线电影| 91精品国产美女浴室洗澡无遮挡| 欧美午夜寂寞影院| 色av成人天堂桃色av| 91欧美一区二区| 成人av动漫在线| eeuss鲁片一区二区三区在线观看| 国产成人自拍网| 91在线视频免费91| 99久久精品国产导航| 色悠悠久久综合| 欧美日韩中文另类| 欧美一区二区视频在线观看2020 | 欧美日韩精品一区二区| 欧美蜜桃一区二区三区| 在线综合视频播放| 久久先锋影音av| 国产欧美精品区一区二区三区| 国产精品欧美精品| 一区二区三区欧美在线观看| 一区二区三区在线不卡| 一区二区在线免费| 麻豆精品久久久| 成人av动漫网站| 在线视频观看一区| 91精品国产综合久久久久| 精品国产精品一区二区夜夜嗨| 日韩欧美电影在线| 国产精品妹子av| 亚洲高清在线视频| 韩国成人精品a∨在线观看| 国产高清成人在线| 色一情一乱一乱一91av| 日韩一区二区三| 18涩涩午夜精品.www| 亚洲第一成人在线| 国产精品自拍av| 欧美视频第二页| 久久久九九九九| 亚洲国产裸拍裸体视频在线观看乱了 | 蜜桃久久精品一区二区| 丁香天五香天堂综合| 在线看国产一区二区| 精品国产一区二区三区四区四 | 日韩电影在线观看一区| 国产99久久精品| 69久久99精品久久久久婷婷| 国产日韩一级二级三级| 午夜国产不卡在线观看视频| 国产盗摄女厕一区二区三区| 欧美系列一区二区| 亚洲欧洲成人精品av97| 精品系列免费在线观看|