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

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

?? main.c

?? 制作AVR下在線
?? C
字號:
/*  
  USBasp - USB in-circuit programmer for Atmel AVR controllers  
  
  Thomas Fischl <TFISCHL@GMX.DE>  
  
  License........: GNU GPL v2 (see Readme.txt)  
  Target.........: ATMega8 at 12 MHz  
  Creation Date..: 2005-02-20  
  Last change....: 2007-07-23  
  
  PC2 SCK speed option. GND  -> slow (8khz SCK),  
                        open -> fast (375kHz SCK)  
*/   
   
#include <AVR io.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_SETLONGADDRESS 9    
   
#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 uchar prog_address_newmode = 0;   
static unsigned long prog_address;   
static unsigned int prog_nbytes = 0;   
static unsigned int 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);   
    }   
   
    /* set compatibility mode of address delivering */   
    prog_address_newmode = 0;   
   
    ledRedOn();   
    ispConnect();   
   
  } 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) {   
       
    if (!prog_address_newmode)   
      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) {   
       
    if (!prog_address_newmode)   
       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) {   
   
    if (!prog_address_newmode)   
      prog_address = (data[3] << 8) | data[2];   
   
    prog_pagesize = data[4];   
    prog_blockflags = data[5] & 0x0F;   
    prog_pagesize += (((unsigned int)data[5] & 0xF0)<<4);   
    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) {   
   
    if (!prog_address_newmode)   
      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_SETLONGADDRESS) {   
   
    /* set new mode of address delivering (ignore address delivered in commands) */   
    prog_address_newmode = 1;   
    /* set new address */   
    prog_address = *((unsigned long*)&data[2]);   
  }   
   
  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 retVal = 0;   
  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]);   
      }   
         
      retVal = 1; // Need to return 1 when no more data is to be received    
    }   
   
    prog_address ++;   
  }   
   
  return retVal;   
}   
   
   
int main(void)   
{   
  uchar   i, j;   
   
  PORTD = 0;   
  PORTB = 0;        /* no pullups on USB and ISP pins */   
  DDRD = ~(1 << 2);   /* all outputs except PD2 = INT0 */   
   
  DDRB = ~0;            /* output SE0 for USB reset */   
  j = 0;   
  while(--j){           /* USB Reset by device only required on Watchdog Reset */   
      i = 0;   
      while(--i);       /* delay >10ms for USB reset */   
  }   
  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一区二区三区免费野_久草精品视频
欧美色欧美亚洲另类二区| 天天操天天综合网| 99精品视频中文字幕| 欧美国产日韩a欧美在线观看| 国产成人在线视频播放| 国产欧美精品一区二区色综合朱莉| 国产精品一二三四| 国产精品电影一区二区| 91久久国产综合久久| 亚洲一二三四久久| 欧美本精品男人aⅴ天堂| 国产精品99久久不卡二区| 中文字幕二三区不卡| 91国偷自产一区二区三区观看| 午夜精品一区在线观看| 精品国产欧美一区二区| 成人免费毛片app| 亚洲午夜在线电影| 精品久久久久久亚洲综合网| 成人激情小说网站| 首页国产丝袜综合| 久久久久久久久99精品| 99riav久久精品riav| 日本va欧美va精品发布| 国产精品天干天干在观线| 欧美日韩在线亚洲一区蜜芽| 激情综合色播五月| 国产精品福利一区二区| 欧美一区二区三区成人| 欧美日韩一级二级三级| 久久精品国产99国产| 国产精品国产三级国产aⅴ中文| 欧美日韩三级在线| 国产呦萝稀缺另类资源| 亚洲主播在线播放| 国产亚洲成av人在线观看导航| 欧洲激情一区二区| 国产成人av福利| 婷婷激情综合网| 中文字幕免费不卡| 精品女同一区二区| 欧美视频自拍偷拍| av亚洲精华国产精华精华| 老司机午夜精品| 亚洲码国产岛国毛片在线| 欧美tk丨vk视频| 欧美无砖专区一中文字| av在线不卡免费看| 狠狠色丁香久久婷婷综合丁香| 一区二区三区久久| 中文子幕无线码一区tr| 日韩欧美一级精品久久| 欧美日韩国产一二三| 亚洲女性喷水在线观看一区| 成人免费毛片app| 久久国产精品一区二区| 亚洲一区二区三区在线播放| 久久这里只有精品6| 欧美日本在线观看| hitomi一区二区三区精品| 国产一区二区三区在线看麻豆| 亚洲二区视频在线| 伊人性伊人情综合网| 中文字幕av一区二区三区| 日韩精品专区在线影院观看| 欧美精品乱码久久久久久按摩| 91视频在线观看免费| 成人午夜激情片| 国产精品77777竹菊影视小说| 蜜臀av一区二区三区| 亚洲电影一区二区三区| 一区二区三区国产精品| 亚洲精品乱码久久久久久久久 | 国产精品一卡二| 国产伦精一区二区三区| 国产乱一区二区| 国产一区二区在线影院| 激情综合色播激情啊| 国产一区二三区好的| 国产成人h网站| 成人视屏免费看| 99久久er热在这里只有精品66| 成人免费视频一区二区| kk眼镜猥琐国模调教系列一区二区| 国产乱国产乱300精品| 国产iv一区二区三区| 岛国一区二区在线观看| 99riav一区二区三区| 色综合视频在线观看| 欧美色图免费看| 538在线一区二区精品国产| 在线播放中文一区| 国产精品久久久久久久久搜平片| 亚洲女人的天堂| 亚洲一区二区三区在线看| 午夜激情久久久| 久久99精品国产麻豆不卡| 国产精品主播直播| 99热在这里有精品免费| 欧洲精品中文字幕| 日韩亚洲欧美综合| 中文字幕欧美国产| 亚洲一区二区三区中文字幕在线| 免费的国产精品| 成人精品小蝌蚪| 欧美三日本三级三级在线播放| 7777精品伊人久久久大香线蕉最新版| 日韩精品一区二区三区在线| 国产日韩欧美亚洲| 一区二区欧美精品| 黄一区二区三区| 91丨porny丨中文| 日韩三级av在线播放| 日本一区二区视频在线| 一区二区三区波多野结衣在线观看| 免费的成人av| 99精品视频一区| 日韩一区二区三区av| 自拍偷自拍亚洲精品播放| 日av在线不卡| 91在线视频网址| 日韩精品一区二区三区视频播放 | 成人av动漫网站| 欧美丰满美乳xxx高潮www| 久久久精品中文字幕麻豆发布| 国产精品久久久久久福利一牛影视| 同产精品九九九| 本田岬高潮一区二区三区| 99国产一区二区三精品乱码| 日本韩国欧美国产| 一区二区免费在线| 欧美视频在线一区二区三区| 久久免费偷拍视频| 午夜精品久久久久久久蜜桃app| 国产精品白丝jk黑袜喷水| 欧美视频一区二| 国产精品无遮挡| 国产一区二区三区在线看麻豆| 97久久人人超碰| 国产日韩欧美a| 久久av老司机精品网站导航| 日韩一区二区三区在线| 日本韩国一区二区三区| 欧美成人精品1314www| 亚洲免费视频中文字幕| 国产成人精品一区二 | 国产成人a级片| 欧美一区二区啪啪| 一区二区三区四区不卡在线| 国产91精品一区二区麻豆亚洲| 91精品国产综合久久小美女| 亚洲人成电影网站色mp4| 国产精品主播直播| www久久精品| 免费亚洲电影在线| 欧美一区二区三区系列电影| 亚洲午夜电影在线| 在线观看精品一区| 一区二区高清视频在线观看| 99热这里都是精品| 亚洲视频免费观看| 不卡一区二区在线| 中文字幕在线不卡| eeuss鲁一区二区三区| 国产精品天美传媒沈樵| 成人av在线网| 中文字幕亚洲视频| www.欧美色图| 亚洲图片欧美激情| 91丨porny丨在线| 亚洲黄网站在线观看| 欧洲一区在线电影| 午夜精品福利一区二区蜜股av | 8x8x8国产精品| 人人精品人人爱| 日韩欧美一级在线播放| 久久不见久久见中文字幕免费| 精品播放一区二区| 国产精品一区二区在线播放| 国产精品久久久久天堂| 不卡的电视剧免费网站有什么| 中文字幕在线不卡| 欧美性一区二区| 奇米777欧美一区二区| 欧美精品一区视频| 不卡一区中文字幕| 亚洲成人av中文| 精品国精品国产尤物美女| 国产成人久久精品77777最新版本| 日韩毛片视频在线看| 欧美吞精做爰啪啪高潮| 轻轻草成人在线| 国产精品毛片久久久久久久| 在线观看国产一区二区| 六月丁香综合在线视频| 欧美国产一区在线| 欧美中文字幕久久| 欧美日韩成人在线| 欧美亚洲丝袜传媒另类| 国产精品白丝在线|