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

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

?? isp.c

?? 可用來自做的AVR-USB-ISP的源碼,內(nèi)符電路圖,用AVR M8來模擬USB接口
?? C
字號:
/************************************************************************************************ * Project: USB AVR-ISP * Author: Christian Ulrich
 * Contact: christian at ullihome dot de
 * * Creation Date: 2007-03-22 * Copyright: (c) 2007 by Christian Ulrich * License: GPLv2 ***********************************************************************************************/
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include "isp.h"

uint8_t ISP_Speed = 1;
uint8_t ISP_Status = 0;

#define ISP_DIVIDER (uint8_t)(22 * 1024 / ((33 + 22) * 25.6)) 

uint8_t ISP_getsupplyvoltage(void)
{
  uint16_t supply;
  ISP_SUPPLY_PORT &= ~(1<<ISP_SUPPLY);

  ADCSRA = (1<<ADEN) | (1<<ADPS1) | (1<<ADPS0);    // Frequenzvorteiler 
                               // setzen auf 8 (1) und ADC aktivieren (1)
  ADMUX = 1;                      // Kanal waehlen
  ADMUX |= (1<<REFS1) | (1<<REFS0); // interne Referenzspannung nutzen 
  ADCSRA |= (1<<ADSC);              // eine ADC-Wandlung 
  while ( ADCSRA & (1<<ADSC));
  supply = ADCW;
  ADCSRA |= (1<<ADSC);            // eine Wandlung "single conversion"
  while ( ADCSRA & (1<<ADSC) );
  supply = ADCW;
  return (supply + ISP_DIVIDER/2) / ISP_DIVIDER;
}

void ISP_checkstatus(void)
{
  uint8_t newstatus;

  if (  (ISP_getsupplyvoltage() > 45) )
    newstatus = ISP_STATUS_CONNECTED_OK;
  else if (  (ISP_getsupplyvoltage() > 20) && (ISP_getsupplyvoltage() < 45) )
    newstatus = ISP_STATUS_CONNECTED_NOT_OK;
  else
    newstatus = ISP_STATUS_DISCONNECTED;
  if (newstatus != ISP_Status)	  
    {
	  if (ISP_statuschanged != NULL) ISP_statuschanged(newstatus);
      ISP_Status = newstatus;
	}
}
void ISP_pulsesck(void)
{
  ISP_OUT |= (1 << ISP_SCK);     /* SCK high */  _delay_ms(0.07);   ISP_OUT &= ~(1 << ISP_SCK);    /* SCK low */  _delay_ms(0.07); }
void ISP_spienable(uint8_t speed) 
{
  switch (speed)
    {
	  case 2:/* enable SPI, master, 93,75 kHz SCK */
	    {          SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1)| (1 << SPR0);          SPSR = 0;
	      break;
        }  
      case 3:
	    {
          /* enable SPI, master, 187,5Hz SCK */          SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1);          SPSR = 0;
		  break;		}
      case 4:
	    {
          /* enable SPI, master, 375kHz SCK */          SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR1);          SPSR = (1 << SPI2X);
		  break;		}		       case 5:
	    {
          /* enable SPI, master, 750kHz SCK */          SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR0);          SPSR = 0;
		  break;		}
	  case 6:
	    {
          /* enable SPI, master, 1,5 MHz SCK */          SPCR = (1 << SPE) | (1 << MSTR) | (1 << SPR0);          SPSR = (1 << SPI2X);
		  break;		}			 	  case 7:
	    {
          /* enable SPI, master, 3 MHz SCK */          SPCR = (1 << SPE) | (1 << MSTR);          SPSR = 0;
		  break;		}			     }}
#define ISP_spidisable() SPCR = 0
void ISP_connect() 
{
  /* 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) */  _delay_ms(0.10);   ISP_OUT |= (1 << ISP_RST);    /* RST high */  _delay_ms(0.10);                   ISP_OUT &= ~(1 << ISP_RST);   /* RST low */  ISP_spienable(ISP_Speed);}void ISP_disconnect() 
{  ISP_DDR &= ~((1 << ISP_RST) | (1 << ISP_SCK) | (1 << ISP_MOSI));  ISP_OUT &= ~((1 << ISP_RST) | (1 << ISP_SCK) | (1 << ISP_MOSI));  ISP_spidisable();}uint8_t ISP_transmit(uint8_t send_byte) 
{  uint8_t rec_byte = 0;  uint8_t i;
  
  if (ISP_Speed == 1)
    {      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_pulsesck();        }      return rec_byte;
    }
  else if (ISP_Speed == 0) return 1;  else
    {
      SPDR = send_byte;      while (!(SPSR & (1 << SPIF)));      return SPDR;	}}
uint8_t ISP_enterprogrammingmode() 
{  uint8_t check;  uint8_t count = 32;  while (count--) 
    {      ISP_transmit(0xAC);      ISP_transmit(0x53);      check = ISP_transmit(0);      ISP_transmit(0);      if (check == 0x53)        return 0;      ISP_spidisable();      ISP_pulsesck();      ISP_spienable(ISP_Speed);    }  return 1;  /* error: device dosn't answer */ 
}
void ISP_erase()
{
  ISP_transmit(0xAC);  ISP_transmit(0x80);  ISP_transmit(0x00);  ISP_transmit(0x00);}

uint8_t ISP_readsignaturebyte(uint8_t addr)
{
  ISP_transmit(0x30);  ISP_transmit(0x00);  ISP_transmit(addr);  return ISP_transmit(0x00);}

uint8_t ISP_deviceisbusy()
{
  ISP_transmit(0xf0);  ISP_transmit(0x0);  ISP_transmit(0x0);  return ISP_transmit(0x0) & 1;}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区电影777| 久久综合久久综合久久| 亚洲激情av在线| 在线观看不卡一区| 亚洲国产裸拍裸体视频在线观看乱了| 色诱视频网站一区| 一个色妞综合视频在线观看| 欧美日本国产视频| 免费精品视频在线| 久久一区二区视频| av在线不卡电影| 伊人色综合久久天天| 69精品人人人人| 国产真实精品久久二三区| 欧美国产禁国产网站cc| 欧美性猛交一区二区三区精品| 婷婷久久综合九色综合伊人色| 欧美一级片免费看| 国产成人av资源| 亚洲电影一区二区三区| 欧美成人欧美edvon| 成人免费看视频| 丝袜诱惑亚洲看片| 国产亚洲成av人在线观看导航| 一本到一区二区三区| 麻豆精品国产91久久久久久| 中日韩免费视频中文字幕| 欧美性感一类影片在线播放| 极品尤物av久久免费看| 亚洲三级在线免费观看| 日韩欧美一级精品久久| 91女神在线视频| 久久国产精品72免费观看| 中文字幕日韩av资源站| 欧美一级日韩一级| 91在线免费看| 国产在线播放一区三区四| 亚洲精品中文在线观看| 亚洲精品一区二区三区99| 在线日韩国产精品| 床上的激情91.| 老司机精品视频在线| 亚洲黄色录像片| 亚洲国产高清在线观看视频| 制服丝袜亚洲播放| 91一区二区在线观看| 国内精品嫩模私拍在线| 亚洲午夜电影在线观看| 中文字幕中文字幕一区| www国产精品av| 91精品久久久久久蜜臀| 在线亚洲高清视频| gogo大胆日本视频一区| 国内精品视频666| 美女久久久精品| 午夜精品久久久久久久蜜桃app| 国产精品久久久久久久久免费桃花 | 日韩一区二区在线观看| 99久久99久久综合| 高清国产一区二区三区| 紧缚捆绑精品一区二区| 日韩av中文字幕一区二区| 亚洲一区二区欧美激情| 亚洲手机成人高清视频| 日本一区二区视频在线| 精品国产一区二区三区不卡 | 波多野结衣中文字幕一区二区三区 | av成人免费在线观看| 麻豆成人久久精品二区三区红| 一区二区三区四区在线播放 | 欧美成人在线直播| 91麻豆自制传媒国产之光| 国产美女娇喘av呻吟久久| 石原莉奈一区二区三区在线观看| 亚洲不卡一区二区三区| 亚洲国产一区二区视频| 亚洲高清视频在线| 一区二区高清在线| 一区二区在线观看av| 亚洲蜜桃精久久久久久久| 亚洲欧洲综合另类| 亚洲天堂免费看| 亚洲免费观看高清完整版在线观看 | 国产一区二区三区综合| 麻豆freexxxx性91精品| 国产一区高清在线| 懂色av中文一区二区三区| 国产高清视频一区| 不卡的av中国片| 日本精品视频一区二区三区| 欧美视频一区二| 日韩视频一区在线观看| 日韩1区2区日韩1区2区| 日本亚洲最大的色成网站www| 奇米一区二区三区av| 激情国产一区二区 | 91猫先生在线| 欧美日韩一本到| 日韩欧美一区在线| 欧美国产视频在线| 一区二区三区四区视频精品免费| 性欧美大战久久久久久久久| 开心九九激情九九欧美日韩精美视频电影| 久久精品国产亚洲高清剧情介绍| 丰满少妇久久久久久久| 欧亚一区二区三区| 日韩欧美www| 国产精品美日韩| 亚洲精品国产精品乱码不99 | 69堂成人精品免费视频| 久久青草欧美一区二区三区| 亚洲天堂av老司机| 男人的天堂亚洲一区| 国产成a人无v码亚洲福利| 欧美写真视频网站| 久久精品无码一区二区三区| 夜夜亚洲天天久久| 黑人精品欧美一区二区蜜桃| 色先锋资源久久综合| 久久综合av免费| 亚洲国产精品久久一线不卡| 国产福利一区二区三区视频在线| 在线精品亚洲一区二区不卡| 2023国产精品| 亚洲综合成人在线| 国产v日产∨综合v精品视频| 3751色影院一区二区三区| 国产精品久久久久久久午夜片| 免费一区二区视频| 色av成人天堂桃色av| 国产视频不卡一区| 喷白浆一区二区| 欧美三区免费完整视频在线观看| 久久久久久久网| 日本成人中文字幕| 91美女片黄在线观看91美女| 久久久久久亚洲综合影院红桃| 午夜久久久久久电影| 99久久婷婷国产| 久久久www免费人成精品| 在线看一区二区| 久久久久国产精品人| 亚洲成年人影院| 91片黄在线观看| 欧美国产一区二区| 国产一区二区三区在线看麻豆| 制服丝袜亚洲网站| 午夜精品久久久久久久99樱桃 | 国产精品1区2区3区在线观看| 这里只有精品视频在线观看| 一区二区三区中文在线| 成人综合日日夜夜| 久久综合九色综合久久久精品综合| 亚洲亚洲精品在线观看| 96av麻豆蜜桃一区二区| 国产精品久久福利| 成人午夜激情影院| 久久伊人中文字幕| 韩国女主播成人在线观看| 欧美一区三区二区| 日韩精品一级二级| 欧美精品在线一区二区| 亚洲第四色夜色| 欧美日韩另类一区| 亚洲成人免费av| 欧美日韩国产天堂| 天天影视涩香欲综合网| 欧美日韩国产免费一区二区| 亚洲最大成人网4388xx| 在线免费观看视频一区| 一区二区三区四区在线免费观看| 色吊一区二区三区| 亚洲午夜精品久久久久久久久| 欧美性视频一区二区三区| 亚洲一二三区在线观看| 欧美亚洲一区二区在线| 日韩不卡一区二区| 欧美xxxx老人做受| 国产精品1024| 亚洲美女视频在线观看| 欧美性生交片4| 蜜臀91精品一区二区三区| 日韩一二三四区| 国产成人精品亚洲777人妖| 欧美国产日韩一二三区| 色婷婷亚洲婷婷| 五月天一区二区| 欧美va亚洲va国产综合| 国产·精品毛片| 亚洲一区二区视频在线观看| 欧美一区二区精品久久911| 国内精品伊人久久久久av一坑 | 日本免费新一区视频| 欧美xingq一区二区| 不卡在线观看av| 无码av免费一区二区三区试看| 欧美变态tickle挠乳网站| a亚洲天堂av| 日韩av电影免费观看高清完整版在线观看| 精品卡一卡二卡三卡四在线|