Table of Contents Table of Contents
Previous Page  72 / 82 Next Page
Information
Show Menu
Previous Page 72 / 82 Next Page
Page Background

ПРОГРАММИРОВАНИЕ

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

© СТА-ПРЕСС