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

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

?? main.c

?? 用ATmega128做的mp3播放器
?? C
字號:
/*********************************************************/
/* BootLoader for ATMega128 & MP3 Ver:3.0  @ 16Mhz	     */
/* Version 1.1 April 2003 								 */
/* 1.0 : First Release									 */
/* 1.1 : Add auto baud rate, code smaller				 */
/* 1.2 : Correct a bug with file larger than 65280 bytes.*/
/* 	   	 	   											 */	
/* Sylvain.Bissonnette@MicroSyl.com						 */
/*********************************************************/

/*********************************************************/
/*                   I N C L U D E    		             */
/*********************************************************/	
#include "main.h"
#include "assembly.h"
#include "macros.h"
#include "iom128v.h"

/*********************************************************/
/*                   D E F I N E    		             */
/*********************************************************/	
//#define	 DeviceID  	 'A'	// Mega8		
//#define	 DeviceID  	 'B'	// Mega16	
//#define	 DeviceID  	 'C'	// Mega64	
#define	 DeviceID  	 'D'	// Mega128	
						
//#define	 FlashSize	 'l'    // Flash 8k
//#define	 FlashSize	 'm'    // Flash 16k
//#define	 FlashSize	 'n'    // Flash 32k
//#define	 FlashSize	 'o'    // Flash 64k
#define	 FlashSize	 'p'    // Flash 128k

//#define	 BootSize	 'a'    // 128 word
//#define	 BootSize	 'b'    // 256 word
#define	 BootSize	 'c'    // 512 word
//#define	 BootSize	 'd'    // 1024 word
//#define	 BootSize	 'e'    // 2048 word
//#define	 BootSize	 'f'    // 4096 word

//#define	 PageSize	 'Q'    // 32 Bytes
//#define	 PageSize	 'R'    // 64 Bytes
//#define	 PageSize	 'S'    // 128 Bytes
#define	 PageSize	 'T'    // 256 Bytes		
//#define	 PageSize	 'U'    // 512 Bytes

//#define  PageByte 	 32     // 32 Bytes
//#define  PageByte 	 64     // 64 Bytes
//#define  PageByte 	 128     // 128 Bytes
#define  PageByte 	 256     // 256 Bytes		
//#define  PageByte 	 512     // 512 Bytes

#define  FALSE		 0
#define  TRUE		 1

#define	 EXECCODE	 0xffff

/*********************************************************/
/*           G L O B A L    V A R I A B L E S			 */
/*********************************************************/	

unsigned char PageBuffer[PageByte];
unsigned int PageAddress;
unsigned char PageAddress16 = 0;
unsigned int RealPageAddress;


/*********************************************************/

void BootLoad(void)
{
SendDeviceID();
TxChar('!');
while(1)
		{
		GetPageNumber();
		if (RealPageAddress == EXECCODE) ExecCode();

		if (GetPage())
		   {
		   WriteFlash();
		   if (CheckFlash()) TxChar('!');
		   else TxChar('@');
		   }
		else TxChar('@');
		}
}

/*********************************************************/
void SendDeviceID(void)
{
TxChar(DeviceID);
TxChar(FlashSize);
TxChar(BootSize);
TxChar(PageSize);
RxChar();
}

/*********************************************************/

void GetPageNumber(void)
{
unsigned char PageAddressHigh;
unsigned char PageAddressLow;

while(!IsChar());
PageAddressHigh = RxChar();

while(!IsChar());
PageAddressLow = RxChar();

RealPageAddress = (int)((PageAddressHigh << 8) + PageAddressLow);
PageAddress = ((unsigned int)PageAddressLow << 8);
if (PageAddressHigh) PageAddress16 = 1;
else PageAddress16 = 0;
}

/*********************************************************/

void ExecCode(void)
{
RAMPZ = 0;
MCUCR = 0x01;	   	// Enable interrupt vector select
MCUCR = 0x00;	   	// Move interrupt vector to flash
asm("jmp 0x0000"); // Run application code   
}

/*********************************************************/

char GetPage(void)
{
unsigned int i;
unsigned char LocalCheckSum = 0;
unsigned char CheckSum = 0;

for (i=0;i<PageByte;i++)
	{
	while(!IsChar());
	PageBuffer[i]=RxChar();
	LocalCheckSum += PageBuffer[i];
   	}
		   
while(!IsChar());
CheckSum = RxChar(); 
if (LocalCheckSum == CheckSum) return 1;
else return 0;
}

/*********************************************************/

void WriteFlash(void)
{
unsigned int i;
unsigned int TempInt;

for (i=0;i<PageByte;i+=2)
   	{
   	TempInt=PageBuffer[i]+(PageBuffer[i+1]<<8);
   	fill_temp_buffer(TempInt,i); //call asm routine.
   	}
if (PageAddress16) RAMPZ = 1;

write_page(PageAddress,0x03);       //Perform page ERASE
write_page(PageAddress,0x05);       //Perform page write
   
enableRWW();
RAMPZ = 0;
}

/*********************************************************/

char CheckFlash(void)
{
unsigned int i;							
unsigned int TempInt;
unsigned int TempInt2;

for (i=0;i<PageByte;i+=2)
    {
	if (PageAddress16) RAMPZ = 1;
	TempInt = read_program_memory(PageAddress + i,0x00);
	RAMPZ = 0;
	TempInt2 = PageBuffer[i] +(PageBuffer[i+1]<<8);
	if (TempInt != TempInt2) return 0;
    }
return 1;
}

/*********************************************************/

unsigned char IsChar(void)
{
if (UCSR0A & 0x80) return 1;
return 0;
}

/*********************************************************/

unsigned char RxChar(void)
{
return UDR0;		   		  // Read char
}

/*********************************************************/

void TxChar(unsigned char ch)
{
while (!(UCSR0A & 0x20)); // Wait for empty transmit buffer
UDR0 = ch;	  		   		  // Write char
}

/*********************************************************/

void Wait()
{
int i;

for (i=-32000;i<32000;i++); // Minimum for 16Mhz
}

/*********************************************************/

void main(void)
{
DDRF = 0xff;   // for ata
PORTF = 0xff;
DDRG = 0x02;
PORTG = 0x02;

PORTE  = 0x01;	// Pull up on RX line
UCSR0C = 0x86;  // Asyn,NoParity,1StopBit,8Bit,
UBRR0L = 16;    // 8->115200 at 16Mhz // 16->57600 at 16Mhz // 25->38400bps at 16Mhz
UCSR0B = 0x18;  // Rx enable Tx Enable

RxChar();
TxChar('>');
Wait();
if (RxChar() == '<') 
   {
   BootLoad();
   ExecCode();
   }
ExecCode();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品久久久久久久91蜜桃| 日韩精品乱码免费| 欧美国产日韩一二三区| 日韩伦理av电影| 日韩av电影天堂| 国产91精品免费| 在线精品亚洲一区二区不卡| 国产酒店精品激情| 亚洲午夜日本在线观看| 久久66热偷产精品| 国内成+人亚洲+欧美+综合在线| 成人高清在线视频| 欧美日韩亚洲丝袜制服| 2019国产精品| 亚洲一区二区三区四区的| 久久国产精品第一页| 国产成人精品影视| 欧美一区二区三区电影| 国产精品乱码人人做人人爱| 亚洲bt欧美bt精品| 本田岬高潮一区二区三区| 日韩一区二区三区在线观看 | 99久久免费国产| 欧美美女网站色| 欧美日韩一区二区在线观看| 91精品欧美久久久久久动漫 | 成人aa视频在线观看| 51精品秘密在线观看| 国产精品福利电影一区二区三区四区| 日韩精品每日更新| av成人免费在线| 91精品国产综合久久蜜臀| 国产精品久久免费看| 久久成人av少妇免费| 欧美军同video69gay| 有码一区二区三区| 成人美女视频在线观看| ww亚洲ww在线观看国产| 日韩在线一区二区三区| 精品视频免费看| 亚洲精选一二三| 99国产精品一区| 亚洲国产精华液网站w| 黄色精品一二区| 精品蜜桃在线看| 国产99久久久国产精品潘金| 婷婷综合久久一区二区三区| 国产精品69久久久久水密桃| 日韩午夜精品电影| 亚洲一区二区欧美日韩| 色欧美片视频在线观看在线视频| 国产人成一区二区三区影院| 国产高清不卡一区二区| 精品国产91久久久久久久妲己| 三级精品在线观看| 欧美精品v国产精品v日韩精品| 亚洲国产精品久久一线不卡| 欧美视频一区二区三区| 亚洲成人精品在线观看| 欧美日韩国产成人在线免费| 亚洲成人综合网站| 欧美肥妇bbw| 青青草精品视频| 欧美一区二区三区在线| 日韩欧美一二三四区| 久久综合色之久久综合| 麻豆精品精品国产自在97香蕉| 欧美成人性战久久| 蜜桃传媒麻豆第一区在线观看| 日韩欧美一级二级三级久久久| 狠狠色综合播放一区二区| 中日韩av电影| 色综合天天综合网天天狠天天 | 91一区二区在线观看| 国产精品丝袜久久久久久app| 色网站国产精品| 亚洲第一成人在线| 欧美一区二区视频网站| 久久精品一区四区| 亚洲欧美综合在线精品| 三级久久三级久久| 日韩成人精品视频| 99久久精品费精品国产一区二区| 91麻豆国产自产在线观看| 欧美老肥妇做.爰bbww| 久久久无码精品亚洲日韩按摩| 欧美色老头old∨ideo| 欧美日本国产视频| 亚洲精品水蜜桃| 成人综合婷婷国产精品久久蜜臀 | 国产精品每日更新在线播放网址| 欧美日韩国产成人在线91| 老司机免费视频一区二区三区| 亚洲一二三专区| 国内精品嫩模私拍在线| 亚洲一二三四在线| 亚洲国产美女搞黄色| 成人高清免费观看| 亚洲va国产天堂va久久en| 久久免费精品国产久精品久久久久| 成人av电影在线网| 免费成人你懂的| 国产精品午夜电影| 88在线观看91蜜桃国自产| 蜜臀av性久久久久蜜臀av麻豆| 18成人在线观看| 欧美高清视频在线高清观看mv色露露十八| 国产中文一区二区三区| 亚洲国产sm捆绑调教视频 | 欧美一级欧美一级在线播放| 99久久精品国产毛片| 久久99国产精品麻豆| 亚洲制服丝袜av| 欧美国产日本韩| 欧美一区二区啪啪| 99久久免费精品高清特色大片| 国产美女精品一区二区三区| 亚洲国产一区二区三区青草影视| 国产精品美女久久久久高潮| 久久久久久免费毛片精品| 欧美福利视频一区| 在线视频国内自拍亚洲视频| 成人一区二区三区| 国产盗摄一区二区| 国产一区二区三区四区五区入口 | 国产情人综合久久777777| 日韩欧美的一区二区| 日韩一区二区在线看| 欧美日韩免费观看一区二区三区| 色婷婷久久久久swag精品| 99久久精品情趣| jlzzjlzz亚洲女人18| 不卡视频在线观看| 精品一区二区三区视频| 老司机精品视频导航| 日韩国产高清影视| 麻豆免费看一区二区三区| 日韩不卡手机在线v区| 日韩综合小视频| 蜜桃久久精品一区二区| 久久国产成人午夜av影院| 久久精品国产精品亚洲精品| 视频在线观看91| 麻豆久久久久久久| 国内一区二区在线| 国产**成人网毛片九色| 91视频在线观看免费| 在线视频一区二区免费| 欧美三级日韩三级| 日韩欧美二区三区| 欧美国产1区2区| 亚洲欧美日韩国产另类专区| 亚洲狼人国产精品| 亚洲精品成人悠悠色影视| 天堂久久久久va久久久久| 免费在线观看一区| 国产成人综合亚洲91猫咪| 成人国产一区二区三区精品| 色综合久久中文综合久久牛| 欧美日韩一区二区在线视频| 久久久99精品免费观看| 一区二区三区加勒比av| 亚洲1区2区3区视频| 成人免费毛片高清视频| 欧美日韩在线播| 中文字幕欧美激情一区| 亚洲一区二区三区四区五区黄| 久久av中文字幕片| 在线精品视频免费播放| 日韩久久精品一区| 美女www一区二区| 色综合天天综合网国产成人综合天 | 岛国精品在线播放| 91黄色免费看| 国产欧美精品一区二区色综合朱莉| 亚洲福利视频三区| 99久久婷婷国产综合精品电影| 日韩欧美一级特黄在线播放| 亚洲国产色一区| 91免费国产在线| 日本一二三不卡| 国产一区二区美女诱惑| 3d动漫精品啪啪一区二区竹菊| 一区二区三区美女| fc2成人免费人成在线观看播放 | 久久精品亚洲国产奇米99| 日本中文字幕不卡| 欧美疯狂性受xxxxx喷水图片| 亚洲美女精品一区| 91免费看片在线观看| 国产精品视频看| 精品日韩在线观看| 亚洲男人电影天堂| 国产精品77777| 久久久久久久久蜜桃| 精品在线播放午夜| 精品伦理精品一区| 久久精品国产精品青草| 日韩精品中文字幕一区| 精品一区二区三区免费视频|