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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c

?? USB programmer For 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-10-08

  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.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 USBASP_FUNC_SPI         9  //RM: SPI Function added

#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 unsigned int prog_pagesize; //TP: Mega128 fix
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] & 0x0F;
    prog_pagesize += (((unsigned int)data[5] & 0xF0)<<4); //TP: Mega128 fix
    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 */
  } else if (data[1] == USBASP_FUNC_SPI) {  //RM: SPI Function added
    replyBuffer[0] = ispTransmit(data[2]);
	len = 1;
  }

  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;
}


?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品日产欧美久久久久| 中国色在线观看另类| 国产精品视频一二三| 欧美大黄免费观看| 日韩欧美国产一区二区三区| 日韩欧美www| 国产人妖乱国产精品人妖| 欧美zozozo| 精品视频资源站| 亚洲精品一区二区三区影院 | 91精品国产综合久久久久久| 日韩视频免费观看高清完整版在线观看 | 中文字幕永久在线不卡| 中文字幕视频一区| 日韩国产欧美在线观看| 韩国av一区二区| 91论坛在线播放| 日韩欧美国产午夜精品| 国产成人午夜电影网| aaa欧美日韩| 欧美疯狂做受xxxx富婆| 国产亚洲精品aa| 蜜臀av性久久久久蜜臀aⅴ | 精品不卡在线视频| 一卡二卡欧美日韩| 波多野结衣中文一区| 日韩一区二区免费在线观看| 中文字幕日韩av资源站| 麻豆精品国产传媒mv男同| 欧美三级一区二区| 中文字幕在线播放不卡一区| 成人午夜电影久久影院| 国产日韩影视精品| 国产成人在线视频免费播放| 欧美一级免费观看| 午夜精品久久久久久久久久久| 色综合色综合色综合色综合色综合| 亚洲图片欧美激情| 成人美女在线观看| 国产欧美一区二区在线观看| 成人性生交大片免费| 国产欧美一区二区精品婷婷| 成人开心网精品视频| 国产精品伦理一区二区| 99re66热这里只有精品3直播| 国产精品激情偷乱一区二区∴| 成人污污视频在线观看| 亚洲男人天堂av| 91精品国产综合久久婷婷香蕉| 免费在线看成人av| 久久久久久久性| 日韩欧美中文字幕精品| 日韩综合在线视频| 国产一区不卡精品| 婷婷久久综合九色综合伊人色| 欧美激情综合在线| 久久伊人蜜桃av一区二区| 欧美刺激脚交jootjob| 国产999精品久久久久久绿帽| 韩国在线一区二区| 狠狠色丁香婷婷综合| 国产在线精品免费av| 成人免费毛片a| 成人av电影免费观看| 久久国产成人午夜av影院| 欧美国产欧美亚州国产日韩mv天天看完整| 视频一区欧美日韩| 中文字幕日韩一区二区| 精品国产髙清在线看国产毛片| 91免费看`日韩一区二区| 久久成人免费电影| 天天综合天天做天天综合| 国产精品久久影院| 久久这里都是精品| 欧美精品丝袜久久久中文字幕| 色悠悠久久综合| 99精品视频一区| 波多野结衣在线一区| 成人午夜激情片| 99综合电影在线视频| 国产成人av一区二区三区在线| 久久成人免费电影| 国产精品一级片在线观看| 久久激情综合网| 国产一区二区精品在线观看| 国产成人精品三级麻豆| 91丨九色丨蝌蚪丨老版| 色综合一区二区| 欧美猛男男办公室激情| 69堂国产成人免费视频| 亚洲精品一区二区三区精华液| 自拍偷拍国产精品| 2023国产精品视频| 色婷婷av一区二区三区软件| 国产激情一区二区三区桃花岛亚洲| 亚洲日本一区二区| 欧美精品一区二区三区很污很色的| 国产成人av电影免费在线观看| 色天天综合久久久久综合片| 久久国产精品99久久人人澡| 精品一区二区免费视频| 国产黄人亚洲片| 欧美日韩一区小说| 国产亚洲一区二区三区四区| 一二三区精品视频| 蜜臀久久99精品久久久久宅男| www.成人在线| 欧美一区二区黄色| 久久精品夜色噜噜亚洲aⅴ| 亚洲一区免费视频| 国产不卡免费视频| 91精品久久久久久久久99蜜臂| 国产精品美女久久久久久久久 | 麻豆精品一区二区| 色网综合在线观看| 中文字幕不卡在线观看| 久久精品国产色蜜蜜麻豆| 欧美男人的天堂一二区| 亚洲人成在线播放网站岛国| 韩日欧美一区二区三区| 3d动漫精品啪啪1区2区免费 | 欧美视频一区在线| 国产精品美女www爽爽爽| 国产一区二区三区免费观看| 欧美一区二区三区视频在线 | 日韩一区二区在线观看视频| 亚洲大片一区二区三区| 91福利资源站| 亚洲一区电影777| 欧美日韩高清不卡| 男女视频一区二区| 日韩精品最新网址| 国产一区二区三区不卡在线观看 | 99视频精品免费视频| 欧美极品少妇xxxxⅹ高跟鞋 | 国产精品久久免费看| 成人精品视频一区二区三区 | 8x8x8国产精品| 精品中文字幕一区二区小辣椒| 日韩欧美国产一区二区在线播放| 另类调教123区 | 色综合久久久久久久久| 亚洲美腿欧美偷拍| 日韩一二三四区| 成人精品视频一区二区三区尤物| 亚洲色欲色欲www| 欧美一级日韩免费不卡| 国产成人av电影在线播放| 夜夜精品浪潮av一区二区三区| 日韩免费观看高清完整版在线观看 | 日韩精品一卡二卡三卡四卡无卡| 精品免费国产二区三区 | 一区二区理论电影在线观看| 日韩三级免费观看| 一本一道久久a久久精品| 激情图片小说一区| 亚洲成人中文在线| 亚洲天堂成人网| 久久久精品欧美丰满| 日韩欧美区一区二| 日本二三区不卡| 99在线精品一区二区三区| 国产精品一区一区| 国产原创一区二区| 日韩精品亚洲一区| 天堂成人免费av电影一区| 国产精品大尺度| 国产精品久久久爽爽爽麻豆色哟哟 | 久久久亚洲欧洲日产国码αv| 在线播放中文字幕一区| 一本色道久久综合亚洲aⅴ蜜桃 | 久久综合九色欧美综合狠狠| 欧美色涩在线第一页| 日本不卡的三区四区五区| 国产精品99久久久久久宅男| 91视频.com| 精品成人私密视频| 综合电影一区二区三区| 美女视频免费一区| 色婷婷精品大视频在线蜜桃视频| 欧美一卡在线观看| 亚洲人成在线播放网站岛国| 蜜臀精品一区二区三区在线观看 | 九色porny丨国产精品| 不卡在线观看av| 91精品国产色综合久久ai换脸| 久久久综合视频| 午夜精品爽啪视频| 国产精品亚洲第一| 欧美视频一区二区三区在线观看| 久久久久国产精品免费免费搜索| 亚洲综合色网站| 91在线视频观看| 国产婷婷一区二区| 韩国一区二区三区| 日韩欧美资源站| 日韩黄色免费网站| 欧美日本一区二区| 亚洲国产综合人成综合网站| 成人午夜看片网址|