MMC файлов на ЖК

P

picnoobie

Guest
Здравствуйте,

Это мой первый пост, я новичок в ПОС и С, но learnig быстро, поэтому запаситесь ласково:

Я ищу фрагмент кода на C, которая
помоги мне просмотреть файлы на SD / MMC
по одному за раз, что-то вроде до нажатия кнопки
отображения одного файла, новый пресс-другому,
и предыдущие кнопки.
Я использую mikroC BTW.
Напомним: Я использую PIC18F452

спасибо.

 
Привет народ,

Приобрел себе некоторый прогресс, пока не относится, но я надеюсь быть.
это смесь информации я нашел в сети, если признать,
ваш код, вероятно, свое уважение, если я благодарю Вас за внесение
она доступна для свободного ...he.he.

Код:ЬурейеЕ неподписанных BYTE Char;

ЬурейеЕ неподписанных Int WORD;

ЬурейеЕ неподписанных долгое DWORD;

ЬурейеЕ неподписанных краткий ui8

/ * Карта памяти размером сектора * /

# DEFINE SECTOR_SIZE 512

# DEFINE BLOCK_LENGTH 32ui32 sectorZero;

ui32 sectorStart;

ui32 RootDirectory;

ui32 sectorsPerFAT;

ui8 SectorsPerCluster;

ui8 reservedSectors;

ui8 numOfFATs;

ui8 rootSectors;

Чар Data [512];/ * Время-поля в DirEntry [4 байта] * /

структура s_DosTime

(

неподписанных Sec: 5;

неподписанных Мин: 6;

неподписанных Час: 5;

неподписанных день: 5;

неподписанных месяц: 4;

неподписанных год: 7;

);

/ * Атрибуты файла * /

структура s_DosAttributes (

неподписанных ReadOnly: 1;

неподписанных скрытых: 1;

неподписанных SystemFile: 1;

неподписанных VolumeLabel: 1;

неподписанных подкаталога: 1;

неподписанных Архив: 1;

неподписанных заповедника: 2;

);/ * Каталог вступления [32 байт] * /

структура s_DirEntry

(

Чар имя_файла [8];

Чар Ext [3];

структура s_DosAttributes атрибутов;

BYTE Reserved [8];

СЛОВО EA_Index;

структура s_DosTime времени;

СЛОВО EntryCluster;

DWORD FileSize;

);BYTE readFileSystemInfo ();Пустота printUSART (Char * OSTR)

(

Словом, я;I = 0;

While (OSTR ) (

USART_Write (OSTR [I ]);

)

USART_Write (0x0D); / / CR

) / / ~Пустота Setup ()

(ADCON1 = 0b00001111 / / Analog Off

PORTC = 0;

PORTD = 0;

TRISC = 0b10011000;

/ / TRISD = 0;USART_Init (4800);

Spi_Init_Advanced (MASTER_OSC_DIV16, DATA_SAMPLE_MIDDLE, CLK_IDLE_LOW, LOW_2_HIGH);)Основными Void ()

(если (readFileSystemInfo ()) (printUSART ( "Boot Record OK");)

еще

(

printUSART ( "Отформатируйте карту");

)readFileName ();) / / Конец основной;Пустота readFileName ()

(

BYTE mmcACK;

СЛОВО FileCnt, DirBlkCnt;

структура s_DirEntry * Dir;

неподписанных Char FName [13], * PTR;MMC_Read_Sector (RootDirectory, Data); / / возвращает 0, если читать успехадля (DirBlkCnt = 0; DirBlkCnt <BLOCK_LENGTH; DirBlkCnt )

(If (Data [0] == 0)

(PrintUSART ( "\ R \ nНе более Files \ R \ N");

DirBlkCnt = BLOCK_LENGTH / / остановки, если DirEntry [0] = 0

брейк;

)PTR = Данные;

для (FileCnt = 0; FileCnt <SECTOR_SIZE; FileCnt = BLOCK_LENGTH)

(

DIR = (структура s_DirEntry *) PTR;

если (DIR-> FileName [0] == 0) перерыва;

если (DIR-> FileName [0 ]>'/')

(If ((DIR-> Атрибуты-> VolumeLabel == 0) & & (DIR-> Атрибуты-> подкаталог == 0))(

зЬгпсру (FName, DIR-> FileName, 11); / / печать файлаprintUSART (FName); / / Print Num первый кластерMMC_Read_Sector (RootDirectory, Data); / / прочитать каталог сектор снова

)

PTR = BLOCK_LENGTH;

)

)

/ / Читать дальше DirEntry

RootDirectory ;

MMC_Read_Sector (RootDirectory, Data);)

) / / конец readFileNameBYTE readFileSystemInfo ()

(BYTE mmcACK;DWORD maxRootEntry;mmcACK = MMC_Read_Sector (0, Data); / / mmcACK = 0, если сектор читать успехом, если Fail mmcACK = 1;

если (mmcACK)

(

вернуть 0;

)

еще

(If ((Data [54] == 'F') & &

(Данные [55] == '') & &

(Данные [56] == 'T') & &

(Данные [57] == '1 ') & &

(Данные [58] == '6 '))

(

printUSART ( "Файловая система FAT16");;

)SectorsPerCluster = Data [13];

reservedSectors = Data [14];

reservedSectors | = (DWORD) Data [15] <<8;

numOfFATs = Data [16];maxRootEntry = Data [17];

maxRootEntry | = (DWORD) Data [18] <<8;

sectorsPerFAT = Data [22];

sectorsPerFAT | = (DWORD) Data [23] <<8;RootDirectory = reservedSectors sectorsPerFAT * numOfFATs;

rootSectors = (maxRootEntry / SECTOR_SIZE) * BLOCK_LENGTH;

sectorStart = RootDirectory rootSectors;

возвращение 1;

)) / / конец readFileSystemInfo
 

Welcome to EDABoard.com

Sponsor

Back
Top