Мне представлялось нечто очень приблизительно такое: имеем прерывания с некоторой высокой частотой, допустим, 15КГц. Пусть наш обработчик прерываний - весьма компактный и тщательно соптимизированный - в четный вызов выставляет биперу 0, в нечетный 1. Получаем на бипере свист 15КГц, который, надеюсь, не будет слышен большинству ретрокомпьютерщиков, кому за 40, и кто использовал для бипера дешевый капсюль, неспособный воспроизвести ничего выше десяти килогерц.
Познакомьтесь, это наш ШИМ. Теперь достаточно в оставшееся время в обработчике складывать инструменты (и их огибающие) и определять, в какую сторону сдвинуть переключение бипера в следующее прерывание. Piece of cake.




Ответить с цитированием