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

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

?? fat.c

?? ATMEGA32+應用程序+Proteus仿真原理圖
?? C
字號:

//=====================================================================
//FAT for AVR(MMC/SD) 
//=====================================================================

//---------------------------------------------------------------------
//    _______________________________________
//   |      |         |     |      |      | |
//   |  DBR | RsvdSec | FAT | FDT  | DATA | |
//   |______|_________|_____|______|______|_|

//    啟動扇區  保留扇區 FAT區 根目錄區  數據區


//根目錄開始扇區 = DBR的扇區地址  +     保留扇區 +  FAT數 *  每FAT扇區數


//數據區開始簇號 = 目錄扇區總數+ 根目錄開始扇區號


//---------------------------------------------------------------------
#include "fat.h"

//---------------------------------------------------------------------
U08 cluster_size;             //每簇扇區數
U16 fat_offset;               //保留扇區數
U16 cluster_offset;           //數據區開始簇號
U16 volume_boot_record_addr;  //DBR的扇區地址


//---------------------------------------------------------------------
//Selections that Adresse of the Volume Boot Record on MBR
//根據MBR計算DBR的扇區地址
//---------------------------------------------------------------------
U16 fat_addr (U08 *Buffer)
{
	U16 volume_boot_record_addr;
	mmc_read_sector (MASTER_BOOT_RECORD,Buffer);      //read MBR to buffer
    volume_boot_record_addr = Buffer[VBR_ADDR] + (Buffer[VBR_ADDR+1] << 8);  
 	//Computed Volume Boot Record 
	mmc_read_sector (volume_boot_record_addr,Buffer); //Read DBR to buffer
    return (volume_boot_record_addr);
}
//---------------------------------------------------------------------
//獲取根目錄開始扇區號
//---------------------------------------------------------------------

U16 fat_root_dir_addr (U08 *Buffer)    
{
	struct BootSec *bootp; //bootp : the structure of DBR
	U16 FirstRootDirSecNum;
	//Selections of the Volume Boot Record of that MMC/SD Karte 
	mmc_read_sector (volume_boot_record_addr,Buffer);
	bootp=(struct BootSec *)Buffer;

	//Computed that first Sector of the Root Directory
	FirstRootDirSecNum = ( bootp->BPB_RsvdSecCnt +
	                       (bootp->BPB_NumFATs * bootp->BPB_FATSz16));
                         //保留扇區數 +  FAT個數 *  每FAT扇區數
	
	FirstRootDirSecNum+= volume_boot_record_addr;//根目錄開始扇區 =  保留扇區數 +  FAT個數 *  每FAT扇區數 
	                                                              // + DBR的扇區地址
	
	return(FirstRootDirSecNum);

}

//---------------------------------------------------------------------
//	Expenditure of the indicated Directory Entry in Entry_Count
//	is none Entry available, is that Entry in 
//	...kgabe Cluster 0xFFFF.it becomes always only ein Entry spent
//	over Storage location too save umit also f黵 small Atmels too use

//讀FDT 根目錄中文件名  屬性  起始簇 ....
//---------------------------------------------------------------------

U16 fat_read_dir_ent (U16 dir_cluster, //Dir Cluster     //0   
					U08 Entry_Count,   //which Dir Entry 已經讀到第幾個目錄結構數據   
					U32 *Size, 		   //the size of File or directory
					U08 *Dir_Attrib,   //the Attributs of File or directory
					U08 *Buffer) 	   //Working Buffer 
{
	U08 *pointer;
	U16 TMP_Entry_Count = 0;
	U32 Block = 0;
	struct DirEntry *dir; //dir...struct

	pointer = Buffer;

	if (dir_cluster == 0)
		{
		Block = fat_root_dir_addr(Buffer);//獲取根目錄開始扇區號
		}
	else
		{
		//computation of the Blocks out Block Count and Cluster out FAT Tabelle
		//computation which Cluster too load is
		//Selections that FAT - Tabelle


		//???????????
		fat_load (dir_cluster,&Block,Buffer);	
				 
		Block = ((Block-2) * cluster_size) + cluster_offset;  //目錄扇區號= (目錄扇區號-2) * 每簇扇區數  +  數據區開始簇號

		}

	//Selections of the Entry Root Directory
    U16 blk;
	for (blk = Block;;blk++)
	{
		mmc_read_sector (blk,Buffer);	//one Blocks of the Root Directory  512 bytes

        U16 a;
		 
		for (a=0;a<BlockSize; a = a + 32)  //BlockSize=512
		{
		 dir=(struct DirEntry *)&Buffer[a]; //Pointer up current Listing Entry get
		 
			if (dir->DIR_Name[0] == 0) //name=00H 表示此項未用
			{
			return (0xFFFF);
			}
			
			//Pr黤en obit ein 8.3 Entry is
			//that is that case if it itself not over one Entry f黵 are enough  File name
			//or over one as gel鰏cht marked Entry acts.

   			if ((dir->DIR_Attr != ATTR_LONG_NAME) &&     //不是長文件
				(dir->DIR_Name[0] != DIR_ENTRY_IS_FREE)) //沒有刪除.
			{
				//is it that gew黱schte Listing Entry
				if (TMP_Entry_Count == Entry_Count) 
				{
					//store of the Listing Entryes in that R點kgabe Buffer
                    U08 b;
					for(b=0;b<11;b++)
					{
					if (dir->DIR_Name[b] != SPACE)
						{
						if (b == 8)
							{
							*pointer++= '.';
							}
						*pointer++=dir->DIR_Name[b];
						}
					}						
					*pointer++='\0';


					*Dir_Attrib = dir->DIR_Attr;//the Attributs of File or directory
					 
					*Size=dir->DIR_FileSize;// the size of file
					
					dir_cluster = dir->DIR_FstClusLO;//the first cluster(low)
					 
					return(dir_cluster);//返回起始簇
				}
			TMP_Entry_Count++;
			}
		}
	}
	return (0xFFFF); //none Entry more found return with 0xFFFF
}
//---------------------------------------------------------------------
//	Selections that Cluster f黵 ein File out that FAT
//	in that Buffer(512Byte). one 128MB MMC/SD 
//	Karte is those Cluster gr鲞e normal proves 16KB gro

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜久久电影网| 国产成人亚洲综合a∨猫咪| 精品粉嫩aⅴ一区二区三区四区| 国产99久久久精品| 日本在线不卡视频一二三区| 国产精品丝袜久久久久久app| 欧美精品在线观看播放| 岛国一区二区在线观看| 美女在线视频一区| 午夜精品久久久| 136国产福利精品导航| 精品国产污污免费网站入口 | 欧美日韩国产影片| 粉嫩av一区二区三区| 免费的成人av| 午夜精品福利一区二区三区av | 精油按摩中文字幕久久| 午夜在线成人av| 亚洲人成精品久久久久| 久久久午夜精品理论片中文字幕| 日韩一区二区视频在线观看| 日本高清视频一区二区| 波多野洁衣一区| 国产激情精品久久久第一区二区 | 午夜av区久久| 亚洲综合网站在线观看| 国产精品久久久99| 亚洲国产精品99久久久久久久久| 精品久久久久久无| 精品国产乱码久久久久久1区2区 | 欧美日韩一区精品| 欧美中文字幕不卡| 色国产综合视频| 91丨porny丨蝌蚪视频| 9人人澡人人爽人人精品| 大尺度一区二区| 成人免费毛片app| 不卡一区二区三区四区| 国产99精品国产| 丁香天五香天堂综合| 国产a级毛片一区| 床上的激情91.| 97超碰欧美中文字幕| 91视频www| 色吊一区二区三区| 欧美年轻男男videosbes| 91精品视频网| 日韩欧美另类在线| 久久蜜桃av一区精品变态类天堂 | 美国十次综合导航| 精品一区二区在线视频| 国内成人免费视频| 国产福利视频一区二区三区| 成人毛片在线观看| 在线观看视频一区二区欧美日韩| 欧美在线一区二区三区| 884aa四虎影成人精品一区| 欧美大片免费久久精品三p| 久久这里只有精品首页| 国产精品―色哟哟| 亚洲精品视频在线观看网站| 亚洲国产精品一区二区www在线| 视频一区二区欧美| 国产一区二区在线影院| 成人午夜激情影院| 欧美系列亚洲系列| 精品国产免费一区二区三区香蕉| 国产色综合一区| 一区二区理论电影在线观看| 视频一区视频二区在线观看| 国产激情偷乱视频一区二区三区| 91小视频免费观看| 欧美精品久久一区二区三区| 久久久综合网站| 亚洲免费视频中文字幕| 婷婷中文字幕一区三区| 国产一区二区三区| 欧美性猛交一区二区三区精品| 日韩视频一区在线观看| 国产精品午夜在线观看| 亚洲高清免费视频| 国产在线日韩欧美| 91久久线看在观草草青青| 欧美一区二区三区在| 中文字幕va一区二区三区| 同产精品九九九| 成人国产精品视频| 日韩三级.com| 亚洲乱码精品一二三四区日韩在线| 日韩综合一区二区| 不卡高清视频专区| 欧美va亚洲va| 亚洲一区二区三区中文字幕在线| 国内精品写真在线观看| 欧美网站大全在线观看| 国产精品视频一二三| 蜜臀av性久久久久蜜臀av麻豆| 99国产精品99久久久久久| 欧美精品自拍偷拍动漫精品| 国产精品国模大尺度视频| 美国欧美日韩国产在线播放| 色94色欧美sute亚洲线路一久| 久久久久高清精品| 麻豆成人久久精品二区三区红| 色综合天天综合网天天看片| 久久久久久久久久久久久夜| 日本色综合中文字幕| 欧美色爱综合网| 亚洲人成影院在线观看| 国产精品白丝av| 欧美一区二区视频网站| 亚洲成a人在线观看| 色诱视频网站一区| 国产精品每日更新| 国产精品自拍在线| 精品国免费一区二区三区| 亚洲成人精品一区| 欧美在线不卡一区| 日韩理论电影院| 99精品国产热久久91蜜凸| 日本一区二区三区四区在线视频 | 91色综合久久久久婷婷| 国产精品麻豆一区二区| 国产乱码精品一区二区三区五月婷| 5月丁香婷婷综合| 日韩综合在线视频| 欧美一区二区三区思思人| 亚洲国产精品一区二区久久| 色噜噜久久综合| 一区二区三区四区不卡在线| 91毛片在线观看| 亚洲免费观看高清在线观看| 91热门视频在线观看| 综合欧美一区二区三区| eeuss鲁片一区二区三区在线观看| 国产日本一区二区| 成人激情午夜影院| 亚洲人123区| 色呦呦日韩精品| 亚洲无线码一区二区三区| 欧美群妇大交群中文字幕| 日本成人在线一区| 日韩午夜小视频| 国模一区二区三区白浆| 国产三级精品在线| 99re8在线精品视频免费播放| 亚洲人成小说网站色在线| 色乱码一区二区三区88| 午夜视频一区二区三区| 日韩一区二区在线观看视频| 国产一区在线观看视频| 中文字幕欧美日韩一区| www.66久久| 亚洲3atv精品一区二区三区| 678五月天丁香亚洲综合网| 久久精品国产亚洲高清剧情介绍| 精品第一国产综合精品aⅴ| 国产成a人亚洲精品| 亚洲精品一二三区| 91精品国产一区二区| 狠狠色丁香久久婷婷综合_中 | 五月婷婷另类国产| 日韩欧美在线不卡| 国产**成人网毛片九色 | av综合在线播放| 亚洲1区2区3区4区| 精品久久久久久久久久久久久久久久久| 国产精品系列在线播放| 日韩理论在线观看| 欧美一区二区福利在线| 国产精品夜夜嗨| 亚洲宅男天堂在线观看无病毒| 欧美男女性生活在线直播观看| 久久成人免费网| 亚洲你懂的在线视频| 91麻豆精品国产91久久久久| 国产成人精品免费| 亚洲一区av在线| 久久久电影一区二区三区| 在线看国产一区二区| 九九九精品视频| 亚洲男同性恋视频| 久久久久久久综合色一本| 91成人看片片| 国产99久久久国产精品| 日韩和欧美一区二区| 中文字幕av在线一区二区三区| 欧美日韩一区二区电影| 高清久久久久久| 日本欧美一区二区三区| 亚洲品质自拍视频网站| 日韩一区二区麻豆国产| 91在线观看视频| 国产麻豆欧美日韩一区| 日韩高清国产一区在线| 亚洲女同ⅹxx女同tv| 国产人成亚洲第一网站在线播放 | 91捆绑美女网站| 国产乱码精品一区二区三| 日韩精品一二三四|