Полная версия этой страницы:
PIC18 + ШИМ + WAV
Здорова, люди.
В память программ ПИКа загоняем примерно 1 с звука (типа восклицания в винде). Получается 8 кБайт при частоте дискретизации 8 кГц, глубине звука 8 бит.
Вопрос - как этот звук с помощью ШИМа в контроллере воспроизвести на пьезопищалке хотябы? Я слышал ктото делал такое. Качество особо пофиг. Подскажите кто как воспроизводит мелодии вообще.
Решение проблемы зависит от исходной частоты подаваемой на счетчик которая д.б. >= 8000 (твоя частота дискетизации звука) * 2^8 (256 твоя глубина звука) = 2,048 МГц (чем больше тем лудше). На выходе шима ставится фильтр резюк-кондюк(номиналы подбираются опытным путем в зависимости от той самой исходной частоты), а в регистр скважности шима записываешь по тамеру через каждые 1/8000 сек. свои нарубленые байты. Для точности ответа: остальные более высокие частоты нужно увеличивать в 2^N раз, где N - целое число.
Успехов!
Andy_MS
Nov 30 2005, 07:21
Делал для эксперимента такое на 18F452. За основу брал приложенный пример. Если надо - завтра могу скинуть свой проектик (сорцы дома).
IgorKossak
Dec 7 2005, 14:55
В добавок к сказанному 0psv0.
Из WAV файла нужно убрать заголовок, чтобы не воспроизводить то, что не является звуком.
Чтобы не вдаваться в детали можно тупо выкинуть первые 32 (или около того) байта.
Andy_MS, закинь, пожалуйчта пример проги на мыло (желательно с кратенькими пояснениями и на СИ), а я могу если надо кинуть прогу, которая делает из wav файлов - константу для СИ.
Andy_MS
Dec 12 2005, 11:25
2torikЦитата
могу если надо кинуть прогу, которая делает из wav файлов - константу для СИ.
У меня есть утилитка, которая из любого файла делает С-массив
мое мыло:
torizin-liteha@yandex.ru
Andy_MS
Dec 12 2005, 13:42
2torik
Исходы скинул на мыло. С коментариями, правда, там не густо...
Спасибо, интересный проект. Разберусь и без коментариев.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.