Разделы инструкций

В сети

Пользователей: 151
Из них просматривают:
Аналоги: 54. Даташиты: 18. Инструкции: 3. Новости: 34. Остальное: 16. Ошибки: 1. Программы: 2. Профиль пользователя: 1. Торрент: 2. Форум: 18. Чат: 2.
Участников: 6
Гостей: 145

KT315 , alex01981 , Google , Kosmonavt , Яндекс , Zyablik , далее...
Рекорд 2375 человек онлайн установлен 26.12.2015.

Партнёры


Партнёры

Новые объявления

Оглавление

Функции для звука

Среда MikroC предоставляет звуковую библиотеку, которая позволяет организовать звуковую сигнализацию в разрабатываемом устройстве. Для этого потребуется только пьезоэлектрический излучатель и назначенный порт.

 
Библиотека включает в свой состав функцию инициализации Sound_Init и функцию формирования звука Sound_Play. Описание этих функций приведено в таблицах 39 и 40 соответственно.

 

 Таблица 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)                                               

 

 
Следующий пример демонстрирует использование функций звуковой библиотеки для генерации тонового сигнала с помощью пьезоэлектрического излучателя. Данный программный код может быть использован на любом микроконтроллере, который имеет PORTB и АЦП на порту PORTA. Частота звука задаётся входным напряжением АЦП (младший байт кода этого напряжения используется как период сигнала T= 1/ƒ).

 

 

unsigned adc_value;
void main() {
PORTB = 0; // Очистка PORTB
TRISB = 0; // PORTB – выход
INTCON = 0; // Запрет всех прерываний
ADCON1 = 0x82; // Конфигурирование VDD как опорного напряжения,
// и выбор канала АЦП
TRISA = 0xFF; // PORTA – вход
Sound_Init(&PORTB, 2); // Инициализация выдачи звука на RB2
do { // Цикл проигрывания звука:
adc_value = Adc_Read(2); // Получить младший байт АЦП
Sound_Play(adc_value, 200); // Проиграть его
} while (1);
}// end
Комментарии принадлежат их авторам. Мы не несем ответственности за их содержание.
Отправитель Нити

Разное

Обработанные водным раствором щелочи стальные контакты (например, батарейного отсека переносной магнитолы или пульта ДУ) никогда не заржавеют.

Интересно

Семь раз отмерь, один раз отрежь. И не перепутай!

Похожие инструкции