Ну, тут вверху генератор огибающей, внизу генератор шума. Смысл в том, что код уменьшился, хотя, до этого казалось, что уменьшить его уже нереально
UPD: последние достижения, количество циклов МК в цикле генерации звука
Версия 24.2 MIN - 72, MAX - 132
Версия 24.3 MIN - 75, MAX - 115
Выигрыш на макс нагрузке - 17 циклов, это существенно, особенно для кварца в 20МГц, где на один цикл генерации звука отводится 90 циклов МК, меньше шансов пропуска прерываний, более качественный звук.
Конечно максимальная нагрузка это очень редкий случай, но он приводит к пропуску прерываний таймера и некачественной генерации.
Для 115 циклов, чтобы всё успевало отрабатывать (имеется в виду прерывания по приходу регистров) рекомендуется использовать для конфига 1.75МГц кварц от 27МГц (122 цикла), для 2МГц конфига от 30МГц (119 циклов). Но, практика показывает, что даже для версии 24.2 (132 цикла) вполне приемлемое звучание дает кварц 24МГц.
Предыдущие версии имеют еще большее количество циклов на максимуме.
Мне еще удалось сделать версию со всеми счетчиками считающими в сторону увеличения с макс 128 циклов, но по звучанию она мало чем отличается от считающей в сторону уменьшения (за исключением генератора шума), так что я решил её не выкладывать, следующая будет версия 24.3, возможно удастся еще немного уменьшить количество циклов на максимуме.





Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

