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

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

?? isp.c

?? the AVR assembly usb asp programming for ATMEGA . this is usefull for any hobbiest to building a pro
?? 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(void) {  /* 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(void) {  uint8_t starttime = TIMERVALUE;  while ((uint8_t) (TIMERVALUE - starttime) < 12) { }}void ispConnect(void) {  /* 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(void) {    /* 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 long address) {  ispTransmit(0x20 | ((address & 1) << 3));  ispTransmit(address >> 9);  ispTransmit(address >> 1);  return ispTransmit(0);}uchar ispWriteFlash(unsigned long 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 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一区二区三区免费野_久草精品视频
豆国产96在线|亚洲| 日韩无一区二区| 欧美一级二级三级乱码| 国产精品免费视频观看| 日韩精品久久理论片| 99久久久国产精品免费蜜臀| 精品国产乱码久久久久久牛牛 | 五月婷婷综合在线| 国产 日韩 欧美大片| 欧美高清激情brazzers| 亚洲欧洲综合另类| 成人性生交大片免费看在线播放| 日韩精品影音先锋| 日本中文在线一区| 欧美久久久久久久久| 一区二区三区久久| 91老司机福利 在线| 国产精品久久久久久久久动漫| 精品写真视频在线观看| 欧美一激情一区二区三区| 亚洲一二三四在线| 色噜噜狠狠色综合欧洲selulu | 欧美丰满一区二区免费视频| 一区二区三区四区视频精品免费| www.视频一区| 国产精品久久久久久久久免费桃花 | 中文字幕亚洲不卡| 不卡欧美aaaaa| 国产精品护士白丝一区av| 成人精品小蝌蚪| 中文字幕精品一区二区三区精品 | 国产欧美一区二区三区鸳鸯浴 | 亚洲高清久久久| 欧美猛男男办公室激情| 午夜精品一区二区三区电影天堂 | 高清不卡一区二区在线| 欧美经典一区二区三区| 国产成人精品免费看| 亚洲欧美在线观看| 在线视频亚洲一区| 人人狠狠综合久久亚洲| www国产成人| 国产成人在线视频网站| 国产精品久久久久9999吃药| 色婷婷久久一区二区三区麻豆| 有坂深雪av一区二区精品| 欧美三区在线观看| 美女性感视频久久| 国产免费成人在线视频| 色综合久久久久久久久久久| 午夜精品视频一区| 久久久亚洲精华液精华液精华液| 成人免费视频国产在线观看| 亚洲综合久久久久| 日韩免费高清电影| 东方欧美亚洲色图在线| 亚洲综合免费观看高清完整版 | 亚洲国产精品麻豆| 日韩欧美成人一区二区| 成人免费毛片高清视频| 亚洲成a天堂v人片| 精品国产一区二区三区久久久蜜月 | 久久精品视频在线免费观看 | 国产.精品.日韩.另类.中文.在线.播放| 中文字幕av一区二区三区高| 91官网在线观看| 久久av资源站| 一区二区在线观看不卡| 欧美大片顶级少妇| 在线精品亚洲一区二区不卡| 久久99蜜桃精品| 亚洲青青青在线视频| 精品国产人成亚洲区| 色综合久久久久网| 国产suv精品一区二区6| 午夜精品影院在线观看| 国产精品久久夜| 日韩欧美国产麻豆| 在线精品视频一区二区三四| 国产精一区二区三区| 亚洲va国产va欧美va观看| 国产精品区一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 99久久精品免费看| 国产一区视频网站| 亚洲va韩国va欧美va精品| 国产精品久久精品日日| 欧美不卡123| 欧美裸体bbwbbwbbw| 99国产精品一区| 成人美女在线观看| 韩国v欧美v亚洲v日本v| 日韩激情一区二区| 亚洲一二三四久久| 亚洲色欲色欲www在线观看| 久久久不卡网国产精品二区| 日韩一区二区三区在线观看| 欧美日韩综合不卡| 91国产成人在线| 色94色欧美sute亚洲线路二| 不卡的av电影| 国产成人精品三级麻豆| 国产精品一区在线| 国产精品资源站在线| 捆绑调教美女网站视频一区| 日本亚洲视频在线| 午夜av一区二区三区| 午夜不卡在线视频| 视频一区中文字幕国产| 五月婷婷综合网| 青娱乐精品视频在线| 一区二区三区久久久| 亚洲一区成人在线| 亚洲国产精品久久不卡毛片| 一区二区三国产精华液| 亚洲综合色在线| 亚洲第一久久影院| 五月天激情小说综合| 日本成人在线看| 日本中文字幕一区二区视频| 免费在线观看日韩欧美| 免费不卡在线观看| 国产一区二区在线视频| 国产精品99久久不卡二区| 国产精品一区二区无线| 丁香啪啪综合成人亚洲小说| 成人精品免费网站| 在线观看日韩精品| 欧美另类videos死尸| 精品成人一区二区三区四区| 国产日韩在线不卡| 亚洲丝袜自拍清纯另类| 亚洲午夜一二三区视频| 日本系列欧美系列| 国模一区二区三区白浆| 丰满岳乱妇一区二区三区| 91女神在线视频| 欧美日韩一区二区在线视频| 欧美va在线播放| 国产精品情趣视频| 亚洲图片欧美综合| 蜜桃av噜噜一区二区三区小说| 国产一区美女在线| 91久久精品网| 欧美大片在线观看一区二区| 国产精品福利影院| 五月天欧美精品| 成人av资源在线观看| 欧美色图免费看| 精品国产污污免费网站入口| 亚洲欧美日韩国产成人精品影院| 日韩中文字幕一区二区三区| 丁香网亚洲国际| 欧美另类一区二区三区| 国产精品色哟哟| 日韩影院免费视频| 99视频在线精品| 日韩精品在线看片z| 亚洲激情欧美激情| 国内精品视频666| 在线亚洲免费视频| 国产性天天综合网| 日韩精品一二三区| 色综合天天综合网天天狠天天 | 亚洲女子a中天字幕| 国产精品成人在线观看| 美女视频黄 久久| 在线日韩一区二区| 欧美激情综合在线| 蜜桃av噜噜一区| 欧美精品一级二级三级| 国产精品看片你懂得| 经典三级视频一区| 欧美高清www午色夜在线视频| 亚洲欧洲综合另类| 成人激情校园春色| 久久婷婷综合激情| 日本视频中文字幕一区二区三区| 91蝌蚪porny九色| 日本一区二区在线不卡| 国模套图日韩精品一区二区| 91精品婷婷国产综合久久| 亚洲日本免费电影| 成人av在线影院| 国产婷婷色一区二区三区四区| 美日韩一区二区| 欧美一三区三区四区免费在线看| 亚洲一区在线电影| 欧美图片一区二区三区| 亚洲视频一区在线观看| jizzjizzjizz欧美| 国产精品久久久久久久浪潮网站| 丁香六月综合激情| 国产精品精品国产色婷婷| 成人午夜视频福利| 国产精品国产三级国产普通话蜜臀 | 亚洲一区二区精品视频| 欧美午夜精品一区二区三区| 尤物av一区二区| 欧美日高清视频|