

ПРОГРАММИРОВАНИЕ
72
WWW.SOEL.RUСОВРЕМЕННАЯ ЭЛЕКТРОНИКА
◆
№ 8 2010
Таблица 41. Описание функции Ow_Reset
Прототип
unsigned short Ow_Reset(unsigned short *port, unsigned short pin)
Возвращаемое значение 0, если DS1820 присутствует, и 1 – если нет
Описание
Выдаёт сигнал сброса для One Wire DS1820. Аргументы port и pin определяют подключение DS1820 к микроконтроллеру
Требования
Работает только с цифровым термометром DS1820
Пример
//Cброс DS1820, который подключен к выводу RA5:
Ow_Reset(&PORTA, 5)
Таблица 42. Описание функции Ow_Read
Прототип
unsigned short Ow_Read(unsigned short *port, unsigned short pin)
Возвращаемое значение Данные, прочитанные из внешнего устройства по шине OneWire
Описание
Читает один байт данных по шине OneWire
Требования
Нет
Пример
unsigned short tmp;
...
tmp = Ow_Read(&PORTA, 5);
Таблица 39. Описание функции Sound_Init
Прототип
void Sound_Init(unsigned short *port, unsigned short pin)
Возвращаемое значение Нет
Описание
Настраивает для микроконтроллера вывод pin порта port на выход
Требования
Номер вывода должен быть в диапазоне 0 – 7
Пример
Sound_Init(&PORTB, 2); // Инициализирует генерацию звука на RB2
Таблица 40. Описание функции Sound_Play
Прототип
void Sound_Play(unsigned short period_div_10, unsigned num_of_periods)
Возвращаемое значение Нет
Описание
Воспроизводит звук на заданном порту и выводе, заданном с помощью функции Sound_Init. Аргумент period_div_10 – период звуковой частоты в циклах
микроконтроллера, поделенный на 10. Генерация звука продолжается в течение заданного аргументом (num_of_periods) числа периодов
Требования
Чтобы звук воспроизводился, необходимо подключение пьезоэлектрического излучателя (или другого звукового излучателя) на заданном выводе порта.
Кроме того, перед выводом следует вызвать функцию Sound_Init, чтобы подготовить аппаратуру к генерации звука
Пример
Требуется воспроизвести звук частотой 1 кГц, период которого составляет
T
= 1/
f
= 1 мс или 1000 циклов для частоты 4 МГц. Отсюда можно определить
первый аргумент: period_div_10=1000/10 = 100. Тогда проиграть num_of_periods=150 периодов можно вызовом функции:
Sound_Play(100, 150)
Таблица 38. Описание функции Mmc_Fat_Get_Swap_File
Прототип
unsigned long Mmc_Fat_Get_Swap_File(unsigned long sectors_cnt)
Возвращаемое значение Номер начального сектора swapEфайла, если он был создан, в противном случае возвращает 0
Описание
Эта функция используется для создания swapEфайла на MMC/SDEносителе. Она принимает аргумент sectors_cnt в качестве количества последовательных
секторов, которые предполагается использовать в качестве swapEфайла. В процессе исполнения функция ищет доступные последовательно
расположенные сектора, количество которых задано аргументом sectors_cnt. Если на носителе существует такая область, в ней создается файл
MIKROSWP.SYS и область соответствующим образом обозначается в таблицах FAT. Файлу присваиваются атрибуты: system, archive и hidden, чтобы
отличать его от других файлов. Если файл с именем MIKROSWP.SYS уже существует на этом носителе, данная функция удаляет его до создания нового
такого же. Назначение swapEфайла состоит в том, чтобы сделать процесс чтения и записи на MMC/SDEноситель настолько быстрым, насколько это
возможно, благодаря использованию функций Mmc_Read_Sector() и Mmc_Write_Sector() непосредственно, без потенциального разрушения FATEсистемы.
SwapEфайл может рассматриваться как «окно» на носителе, куда пользователь может свободно писать/читать данные каким ему угодно способом. Его
главное назначение в библиотеке mikroC состоит в обеспечении процесса быстрого сбора данных, когда критичный ко времени процесс сбора данных
заканчивается, данные можно переписать в «нормальный» файл в требуемом формате
Требования
Порты должны быть проинициализированы для FATEопераций с MMC. См. Mmc_Fat_Init
Пример
// Попытка создания swapEфайла размером не менее 1000 секторов
// Если удаётся, то номер стартового сектора посылается в USART
void M_Create_Swap_File() {
size = Mmc_Fat_Get_Swap_File(1000);
if (size) {
Usart_Write(0xAA);
Usart_Write(Lo(size));
Usart_Write(Hi(size));
Usart_Write(Higher(size));
Usart_Write(Highest(size));
Usart_Write(0xAA);
}
}//end
© СТА-ПРЕСС