Современная электроника №6/2021

ПРОЕКТИРОВАНИЕ И МОДЕЛИРОВАНИЕ 55 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 6 2021 Применение функций библиотеки sdcard.h для чтения и записи данных во внешнюю память Для работы с картами памяти MMC/SD/SD HC, отформатирован- ными в FAT12, FAT16 или FAT32 в CodeVisionAVR предусмотрены библи- отеки sdcard.h и ff.h. С помощью функ- ций disk_read и disk_write библиоте- ки sdcard.h удобно выполнить чтение и запись текстовых данных во внеш- нюю память, когда образ карты памяти создан с помощью редактора Блокнот. В коде программы функция чтения информации имеет следующий фор- мат записи: disk_read (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count), где drv – это номер устройства (нумерация начинается с 0), buff – переменная для записи массива считанных дан- ных, sector – номер блока, с которого начнётся чтение, count – количество блоков для чтения (нумерация начи- нается с 1). Функция записи имеет сле- дующий формат: disk_write (unsigned char drv, unsigned char* buff, unsigned long sector, unsigned char count), где drv – это номер устройства, buff – переменная, в которой хранятся дан- ные для записи, sector – номер блока, с которого начнётся запись, count – количество блоков для записи. Чтение и запись информации во внешнюю память выполняют блоками объёмом 512 байт. Рассмотрим работу с функциями disk_read и disk_write на конкретном примере, для чего создадим в Блокно- те новый текстовый документ, запи- шем в него следующий текст: «I like CodeVisionAVR!», сохранимфайл с рас- ширением *.mmc на диск компьютера в одном каталоге с проектом Proteus и укажем его имя в поле Card Image File в окне свойств карты памяти. Для записи информации во внеш- нюю память, её чтения и отображения на экране терминала и буквенно-циф- рового дисплея напишем программу инициализации микроконтроллера на языке С с применением стандартных функций CodeVisionAVR. Текст про- граммы приведён в листинге 1. Введём текст программы в окне кода CodeVisionAVR и запустим командой основного меню «Project/Build All» ком- пиляцию, по окончании которой выда- ётся отчёт о наличии ошибок в коде программы (см. рис. 11). Если ошиб- ки не обнаружены, на диске компью- тера будет создан hex-файл для запи- си в микроконтроллер. Теперь перейдём в Proteus и в окне свойств микросхемы ATmega32 в поле «Program File» укажем путь к файлу про- шивки на диске компьютера. Коман- дой основного меню «Debug / Run Simulation» запустим в Proteus моде- лирование собранной схемы (резуль- тат представлен на рис. 12) и проана- лизируем её работу. После запуска программа инициа- лизации микроконтроллера проверяет подключение карты памяти с помощью функции disk_initialize(0), где в скобках указан номер подключаемого устрой- ства (при успешном выполнении функ- Рис. 10. Окно Configure Project: вкладка MMC/SD/SD HC Card (а), вкладка Code Generation (б) а б

RkJQdWJsaXNoZXIy MTQ4NjUy