Raspberry Pi:Библиотеки/WiringPi/Функции для работы со звуком: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


{{Черновик}}
 


=Функции для работы со звуком<ref>[http://wiringpi.com/reference/software-tone-library/ wiringpi.com - Software Tone Library]</ref>=
=Функции для работы со звуком<ref>[http://wiringpi.com/reference/software-tone-library/ wiringpi.com - Software Tone Library]</ref>=

Текущая версия от 13:09, 18 июня 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.



Функции для работы со звуком[1]

Библиотека WiringPi содержит функции для программного обработчика звука, способного выдавать простой звуковой (прямоугольный) сигнал на любом GPIO-контакте Raspberry Pi.

Но есть и некоторые ограничения... Чтобы не нагружать CPU, минимальная ширина импульса составляет 100 мкс. В итоге максимальной частотой может быть: 1 / 0,0002 = 5000 Гц.

Также обратите внимание, что хотя эти функции запускают себя с более высоким приоритетом или с приоритетом реального времени, Linux все равно может влиять на точность генерируемого сигнала.

Впрочем, несмотря на ограничения, с помощью этих функций можно издавать звуки на пьезодинамиках и динамиках с высоким импедансом.

Чтобы использовать эти функции, напишите в начале своей программы следующее:

#include <wiringPi.h>
#include <softTone.h>

Компилируя программу, вы должны будете подключить, помимо WiringPi, библиотеку pthread:

cc -o myprog myprog.c -lwiringPi -lpthread

Инициализировать WiringPi можно при помощи функций wiringPiSetup(), wiringPiSetupGpio() и wiringPiSetupPhys(). Функция wiringPiSetupSys() недостаточно быстра, поэтому вам нужно будет запускать программы при помощи sudo.

Итак, для работы со звуком в WiringPi есть следующие функции:

Примечания

  • Каждый контакт, активированный для работы со звуком, использует примерно 0,5% ресурсов CPU.
  • Чтобы выдача ШИМ не прекращалась, программа должна оставаться в запущенном состоянии.

См.также

Внешние ссылки