В память программ ПИКа загоняем примерно 1 с звука (типа восклицания в винде). Получается 8 кБайт при частоте дискретизации 8 кГц, глубине звука 8 бит. Вопрос - как этот звук с помощью ШИМа в контроллере воспроизвести на пьезопищалке хотябы? Я слышал ктото делал такое. Качество особо пофиг. Подскажите кто как воспроизводит мелодии вообще.
Решение проблемы зависит от исходной частоты подаваемой на счетчик которая д.б. >= 8000 (твоя частота дискетизации звука) * 2^8 (256 твоя глубина звука) = 2,048 МГц (чем больше тем лудше). На выходе шима ставится фильтр резюк-кондюк(номиналы подбираются опытным путем в зависимости от той самой исходной частоты), а в регистр скважности шима записываешь по тамеру через каждые 1/8000 сек. свои нарубленые байты. Для точности ответа: остальные более высокие частоты нужно увеличивать в 2^N раз, где N - целое число.
В добавок к сказанному 0psv0. Из WAV файла нужно убрать заголовок, чтобы не воспроизводить то, что не является звуком. Чтобы не вдаваться в детали можно тупо выкинуть первые 32 (или около того) байта.
Andy_MS, закинь, пожалуйчта пример проги на мыло (желательно с кратенькими пояснениями и на СИ), а я могу если надо кинуть прогу, которая делает из wav файлов - константу для СИ.