Есть МК, память и ЦАП, все это общается через SPI. Устройство - генератор цифрового звука
Каждые 87мкс МК выдает в ЦАП два байта - это типа звук (8 бит, 11500Гц), и считывает следующий байт из памяти (1 байт инструкция, 3 байта адрес, 1 байт - считывается из памяти). Таким образом получаем байт, который передается в ЦАП в через следующие 87мкс.
Собственно в чем затык: если выводить просто один звук, то нет проблем, а если например надо выводить 1 звук (допустим дизель - зацикленный), и параллельно ему еще один (допустим - гудок), то тут я и туплю...
Как эти 2 звука смешать? Если тупо сложить 2 байта каждого звука, то получится фигня (будет переполнение). Можно ограничить сверху и снизу, но тогда будут искажения. Если взять среднее арифметическое, то это по-моему тоже не правильно.
А если надо смешать 3 звука
Может я в чем-то ошибаюсь? Подскажите пожалуйста


