СОВРЕМЕННАЯ ЭЛЕКТРОНИКА 2011-8
ПРАКТИЧЕСКАЯ ЭЛЕКТРОНИКА 48 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 8 2011 ние файлов. Имя файла должно быть длиной ровно 8 символов верхнего ре гистра. Пользователь сам отвечает за уникальность имён файлов, т.к. про граммы работы с CF этого не контро лируют. Перед операцией записи необходи мо убедиться, что запись производится не в загрузочный сектор или сектор таблицы FAT, т.к. это сделает карту не читаемой на компьютере или в циф ровой камере. Здесь существеннуюпо мощь могут оказать средства низко уровневого доступа к носителям, вроде программыWinhex. Библиотека среды разработки mik roC содержит следующий наборфунк ций для работы с картами памяти CF: ● Cf_Init, ● Cf_Detect, ● Cf_Total_Size, ● Cf_Enable, ● Cf_Disable, ● Cf_Read_Init, ● Cf_Read_Byte, ● Cf_Write_Init, ● Cf_Write_Byte. Описание данных функций, требо ваний к ним и пример их использова ния приводится в табл. 1–9. Кроме того, библиотека mikroC со держит набор функций для работы с файлами. Данный набор включает в се бя следующие функции: ● Cf_Fat_Init, ● Cf_Fat_Assign, ● Cf_Fat_Reset, ● Cf_Fat_Read, ● Cf_Fat_Rewrite, ● Cf_Fat_Append, ● Cf_Fat_Delete, ● Cf_Fat_Write, ● Cf_Fat_Set_File_Date, ● Cf_Fat_Get_File_Date, ● Cf_Fat_Get_File_Size. Описание этих функций приведено в табл. 10–20. П РИМЕР ИСПОЛЬЗОВАНИЯ БИБЛИОТЕЧНЫХ ФУНКЦИЙ Следующий пример демонстриру ет использование библиотечных функций при работе с картами па мяти CF. В данном примере осущест вляется инициализация портов микроконтроллера и организует ся запись 512 байт в сектор 590, за тем программа читает данные и вы водит их в PORTD для визуального контроля: unsigned i; void main() { TRISC = 0; // PORTC – выход Cf_Init(&PORTB, &PORTD); // Ини циализация портов while (!Cf_Detect()); // Ожидание подключения CF карты Delay_ms(500); Cf_Write_Init(590, 1); // Инициа лизация записи сектора 590 // Запись 512 байтов в сектор (590) VCC C1, C2 18 пФ BQ1 8 МГц 11 12 13 14 VCC GND OSC1 OSC2 RC0 RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 RD7 RD6 RD5 RD4 RD3 RD2 RD1 RD0 40 39 38 37 36 35 34 33 RD1 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 RD0 PIC18F452 20 VCC Крта Compact Flash R1 10K VCC 19 RB7 RB6 RB5 RB4 30 29 28 27 RB3 RB2 22 21 Рис. 2. Схема подключения карты памяти CF к микроконтроллеру Таблица 1. Описание функции Cf_Init Прототип void Cf_Init(unsigned short *ctrlport, unsigned short *dataport); Возвращаемое значение Нет Описание Инициализирует порты для работы с CF!картой. Определяет два порта: ctrlport и dataport Требования Нет Пример Cf_Init(&PORTB, &PORTD); © СТА-ПРЕСС
Made with FlippingBook
RkJQdWJsaXNoZXIy MTQ4NjUy