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

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

?? mmc_sd.c

?? Atmel ATMEGA32 Serial controlled SD card MP3 Player.
?? C
字號(hào):
/*************************************************************/
/*                   SD/MMC操作函數(shù)庫(kù)                        */
/*  環(huán)境WinAVR 20060421                                      */
/*  作者:Bozai(章其波)                                    */
/*  E-mail:sudazqb@163.com                                  */
/*  2006年11月26日                                           */
/*************************************************************/
/*          FAT diriver for  MiniMP3 Player                        */
/*                                                                 */
/* Platform   : AVRStudio4.12 sp4 + WinAVR20060421                 */
/*              optimize -0s                                       */
/* Author     : bozai(Zhang Qibo)                                  */
/* E-mail     : sudazqb@163.com                                    */
/* MSN        : zhangqibo_1985@hotmail.com                         */
/* Date       : 2006-12-26                                         */
/*******************************************************************/




#include <avr/io.h>
#include "MMC_SD.h"


//低速模式  //spi low speed
void SPI_Low(void)
{
	SPCR =   _BV(SPE)|_BV(MSTR)|_BV(SPR1)|_BV(SPR0);
	SPSR &= ~_BV(SPI2X);
}

//高速模式	//spi full speed
void SPI_High(void)
{
	SPCR =  _BV(SPE)|_BV(MSTR);
	SPSR |= _BV(SPI2X);
}

//端口初始化,模式初始化  //port initialize
void SPI_Init(void)
{
	DDR_INI();
	SPI_Low();
}

//寫(xiě)讀一個(gè)字節(jié)			//read and write one byte
uint8 SPI_WriteByte(uint8 val)
{
	SPDR = val;
	while(!(SPSR & _BV(SPIF)));
	return SPDR;
}

/*uint8 SPI_ReadByte(void)
{
	SPDR = 0xff;
	while(!(SPSR & _BV(SPIF)));
	return SPDR;
}*/
//sd卡初始化		//sd card initialize
void MMC_SD_Init(void)
{
	SPI_Init();
	SPI_CS_Deassert();
}

//sd卡寫(xiě)命令		//sd send command
uint8 MMC_SD_SendCommand(uint8 cmd, uint32 arg)
{
	uint8 r1;
	uint8 retry=0;
	
	SPI_WriteByte(0xff);
	SPI_CS_Assert();
	
	SPI_WriteByte(cmd | 0x40);//分別寫(xiě)入命令	//send command
	SPI_WriteByte(arg>>24);
	SPI_WriteByte(arg>>16);
	SPI_WriteByte(arg>>8);
	SPI_WriteByte(arg);
	SPI_WriteByte(0x95);
	
	while((r1 = SPI_WriteByte(0xff)) == 0xff)//等待響應(yīng),	//wait response
		if(retry++ > 20) break;//超時(shí)退出					//time out error

	SPI_CS_Deassert();

	return r1;//返回狀態(tài)值					//return state
}

//sd卡復(fù)位		//reset sd card (software)
uint8 MMC_SD_Reset(void)
{
	uint8 i;
	uint8 retry;
	uint8 r1=0;
	retry = 0;
	SPI_Low();
	do
	{
		for(i=0;i<10;i++) SPI_WriteByte(0xff);
		r1 = MMC_SD_SendCommand(0, 0);//發(fā)idle命令	//send idle command
		retry++;
		if(retry>10) return 1;//超時(shí)退出		//time out
	} while(r1 != 0x01);	


	retry = 0;
	do
	{
		r1 = MMC_SD_SendCommand(1, 0);//發(fā)active命令	//send active command
		retry++;
		if(retry>100) return 1;//超時(shí)退出		//time out
	} while(r1);
	SPI_High();
	r1 = MMC_SD_SendCommand(59, 0);//關(guān)crc		//disable CRC

	r1 = MMC_SD_SendCommand(16, 512);//設(shè)扇區(qū)大小512	//set sector size to 512
	return 0;//正常返回		//normal return
}

//讀一個(gè)扇區(qū)		//read one sector
uint8 MMC_SD_ReadSingleBlock(uint32 sector, uint8* buffer)
{
	uint8 r1;
	uint16 i;
	//uint8 retry=0;

	r1 = MMC_SD_SendCommand(17, sector<<9);//讀命令	//read command
	
	if(r1 != 0x00)
		return r1;

	SPI_CS_Assert();
	//等數(shù)據(jù)的開(kāi)始	//wait to start recieve data
	while(SPI_WriteByte(0xff) != 0xfe);//if(retry++ > 50){SPI_CS_Deassert();return 1;}

	for(i=0; i<512; i++)//讀512個(gè)數(shù)據(jù)	//read 512 bytes
	{
		*buffer++ = SPI_WriteByte(0xff);
	}

	SPI_WriteByte(0xff);//偽crc
	SPI_WriteByte(0xff);
	
	SPI_CS_Deassert();

	return 0;
}


//寫(xiě)一個(gè)扇區(qū)		//wirite one sector //not used in this application
uint8 MMC_SD_WriteSingleBlock(uint32 sector, uint8* buffer)
{
	uint8 r1;
	uint16 i;
	//uint8 retry=0;

	r1 = MMC_SD_SendCommand(24, sector<<9);//寫(xiě)命令	//send command
	if(r1 != 0x00)
		return r1;

	SPI_CS_Assert();
	
	SPI_WriteByte(0xff);
	SPI_WriteByte(0xff);
	SPI_WriteByte(0xff);

	SPI_WriteByte(0xfe);//發(fā)開(kāi)始符			//send start byte
	
	for(i=0; i<512; i++)//送512字節(jié)數(shù)據(jù)		//send 512 bytes data
	{
		SPI_WriteByte(*buffer++);
	}
	
	SPI_WriteByte(0xff);
	SPI_WriteByte(0xff);
	
	r1 = SPI_WriteByte(0xff);
	
	if( (r1&0x1f) != 0x05)//等待是否成功	//judge if it successful
	{
		SPI_CS_Deassert();
		return r1;
	}
	//等待操作完		//wait no busy
	while(!SPI_WriteByte(0xff));//if(retry++ > 50){SPI_CS_Deassert();return 1;}

	SPI_CS_Deassert();

	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看亚洲精品| 日韩精品一区二区三区在线播放| 日韩丝袜情趣美女图片| 一区二区成人在线视频| 国产精品一二三四区| 日韩欧美精品三级| 精品亚洲国内自在自线福利| 这里只有精品99re| 亚洲v精品v日韩v欧美v专区| 国产91在线观看丝袜| 精品入口麻豆88视频| 亚瑟在线精品视频| 欧美三级电影在线观看| 亚洲高清在线精品| 欧美精品免费视频| 青青草视频一区| 日韩一区二区在线观看视频 | 国产自产v一区二区三区c| 在线播放欧美女士性生活| 日韩黄色在线观看| 2024国产精品| 色综合天天天天做夜夜夜夜做| 亚洲一二三四区| 日韩免费高清av| av不卡免费在线观看| 亚洲一区二区影院| 精品88久久久久88久久久| av成人老司机| 青青草国产精品97视觉盛宴| 中文字幕av免费专区久久| 欧美精品乱码久久久久久| 国产在线精品一区二区三区不卡 | 欧美色图一区二区三区| 免费成人在线网站| 中文字幕欧美一| 欧美一级在线视频| 97久久久精品综合88久久| 日本欧美肥老太交大片| 最新欧美精品一区二区三区| 欧美一区二区三区的| 99久久久久久| 激情成人午夜视频| 亚洲123区在线观看| 中文字幕一区二区不卡| 精品国产乱码久久| 欧美日韩国产中文| 成人自拍视频在线观看| 免费av成人在线| 亚洲午夜免费电影| 亚洲欧洲综合另类| 国产亚洲欧美一级| 日韩美女一区二区三区| 色88888久久久久久影院野外| 国产一二三精品| 久久精品国产澳门| 五月婷婷综合网| 一区二区三区四区视频精品免费| 国产日韩欧美一区二区三区乱码 | 亚洲精品免费播放| 国产日韩欧美一区二区三区综合| 91精品国产综合久久久久久久久久| 不卡av在线免费观看| 国产在线精品一区二区三区不卡 | 亚洲精品乱码久久久久久黑人| 国产午夜亚洲精品不卡| 91精品国产综合久久福利软件| 色婷婷亚洲精品| 92国产精品观看| 成人黄色a**站在线观看| 黑人巨大精品欧美一区| 麻豆国产精品一区二区三区| 丝袜亚洲另类欧美综合| 五月天激情综合网| 亚洲18影院在线观看| 午夜电影久久久| 石原莉奈一区二区三区在线观看| 亚洲h精品动漫在线观看| 亚洲一区二区美女| 亚洲一区二区视频| 亚洲在线中文字幕| 亚洲午夜免费电影| 婷婷久久综合九色综合伊人色| 亚洲青青青在线视频| 一区二区三区欧美| 午夜精品爽啪视频| 男男视频亚洲欧美| 久久99精品久久久久久动态图| 精品在线你懂的| 国产伦精品一区二区三区在线观看 | 成人av资源网站| 国产成人综合网| 不卡的av中国片| 欧日韩精品视频| 在线播放/欧美激情| 欧美一区二区三区在线看| 精品国产1区二区| 国产欧美日韩视频在线观看| 国产精品福利电影一区二区三区四区| 中文字幕不卡一区| 亚洲激情综合网| 日韩av一区二区三区| 久久99精品国产91久久来源| 国产精品一区在线观看你懂的| 高清av一区二区| 在线视频综合导航| 日韩欧美精品在线视频| 国产午夜三级一区二区三| 中文字幕在线不卡一区| 亚洲国产va精品久久久不卡综合 | 欧美一级高清大全免费观看| 久久久久一区二区三区四区| 国产精品不卡在线| 亚洲1区2区3区视频| 91老师片黄在线观看| 制服丝袜亚洲播放| 国产日韩欧美综合一区| 亚洲一区二区欧美| 国产呦精品一区二区三区网站| 99久久99久久综合| 欧美疯狂做受xxxx富婆| 日本一区二区三区四区| 亚洲国产视频网站| 高清久久久久久| 欧美日韩一区二区三区高清| 26uuu国产在线精品一区二区| 欧美视频日韩视频| 久久久午夜电影| 亚欧色一区w666天堂| 成人性色生活片免费看爆迷你毛片| 欧洲生活片亚洲生活在线观看| 欧美成人精品3d动漫h| 亚洲综合丁香婷婷六月香| 国产精品资源站在线| 91麻豆精品国产无毒不卡在线观看 | 一区二区三区精品久久久| 久久国产精品无码网站| 欧美亚洲自拍偷拍| 国产精品嫩草影院com| 奇米影视在线99精品| 色狠狠av一区二区三区| 国产亚洲综合性久久久影院| 首页国产欧美久久| 色婷婷av一区二区三区大白胸 | 国产日韩视频一区二区三区| 日本成人中文字幕| 欧美综合欧美视频| 亚洲欧洲韩国日本视频| 精品一区二区影视| 欧美高清视频www夜色资源网| 亚洲欧美日韩国产综合| 国产成人免费高清| 日韩欧美中文一区| 亚洲成av人片一区二区| 91视频精品在这里| 中文字幕在线不卡一区二区三区| 国产又黄又大久久| 精品88久久久久88久久久| 日本不卡中文字幕| 欧美日韩mp4| 亚洲3atv精品一区二区三区| 欧美专区在线观看一区| 一区二区三区在线观看动漫| www..com久久爱| 1区2区3区欧美| 成人黄色软件下载| 国产欧美精品一区aⅴ影院| 国产在线精品一区二区 | 久久久www免费人成精品| 理论电影国产精品| 欧美sm极限捆绑bd| 老司机精品视频在线| xvideos.蜜桃一区二区| 国产精品中文欧美| 国产精品人人做人人爽人人添| 国产91丝袜在线播放九色| 欧美韩国一区二区| av在线不卡免费看| 一区二区三区四区av| 欧美日韩一区国产| 日韩高清不卡一区二区三区| 91精品国产高清一区二区三区蜜臀 | 99re这里只有精品首页| 亚洲欧美一区二区三区国产精品| 日本久久电影网| 亚洲一区二区三区激情| 69堂成人精品免费视频| 九色|91porny| 久久久三级国产网站| a级高清视频欧美日韩| 亚洲永久精品大片| 日韩三级av在线播放| 国产美女娇喘av呻吟久久| 国产精品国产三级国产专播品爱网| 91在线一区二区| 日本色综合中文字幕| 精品欧美一区二区三区精品久久| 国产成人综合在线| 亚洲一区二区三区四区在线观看| 欧美精品电影在线播放| 国产乱码精品一区二区三区忘忧草 |