Регулировка частоты ШИМ

Обсуждаем контроллеры компании Atmel.
Ответить
isx
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2316
Зарегистрирован: Вс июн 26, 2011 20:03:21

Сообщение isx »

Приветствую форумчан!
Так сложились звезды, что теперь я использую ардуино вместо привычных мне STM32 (да простят меня ST).
Появилась задача - собрать на ардуине генератор звуковых частот. Нужно получить несколько нот для музыкальной игрушки.
Как я понял, с использованием средств ардуино ide сделать это не получится. Даташит на аврку 328 не выдал мне регистра, позволяющего настраивать частоту ШИМ в произвольном варианте.
Подскажите пожалуйста, как можно реализовать такую задачу?
Реклама
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 303
Зарегистрирован: Ср май 03, 2017 03:22:26

Сообщение 7seg »

Тут есть очень хорошая статья по генерации звука синусоидальной формы.
http://www.radio-magic.ru/microcontroll ... uka-na-avr

Добавлено after 34 seconds:
Остатенться поправить немного регистры через ДШ на 328.
andrei23061996@gmail.com
.................................................................................................................
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Ну после stm периферия avr конечно убого выглядит. Перед глазами дш нет, но должен быть подходящий режим. Если нет подходящего режима fast pwm, то шим с коррекцией фазы (боюсь не напишу правильное название по памяти) дожен подойти. Опять же прграммную реализацию никто не отменяет.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

СТС режиа с инверсией ноги при совпадении. выход будет 50% заполнением и периодом кратным OCRxA, где х-номер задействованного таймера.

Добавлено after 8 minutes 4 seconds:
только вроде в этом режиме нет буферизации, поэтому или счетчик использовать с "быстрым оборотом" чтобы небыло ощутимых провалов в звуке если вдруг значение регистра окажется меньше счетчика или регистр обновлять по совпадению (в прерывании).
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Эиком - электронные компоненты и радиодетали
Модератор
Аватара пользователя
Сообщения: 19055
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

а чтобы не было сбоев, перед записью нового значения в регистр обнулять счетчик.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Сообщение Z_h_e »

Зачем же обнулять. Это можно делать в прерывании после сброса счетчика.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 15605
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

[uquote="isx",url="/forum/viewtopic.php?p=3211016#p3211016"]Приветствую форумчан!...
Появилась задача - собрать на ардуине генератор звуковых частот. Нужно получить несколько нот для музыкальной игрушки.
Как я понял, с использованием средств ардуино ide сделать это не получится....
Подскажите пожалуйста, как можно реализовать такую задачу?[/uquote]

Как это у ардуино средств формирования звука/нот нет?
https://www.arduino.cc/en/Reference/HomePage
раздел
Advanced I/O
tone()
https://www.arduino.cc/en/Reference/Tone
:?
Да и платки на основе STM32 там также применяются...
:dont_know:
Ответить

Вернуться в «AVR»