Скажем. я уже просчитывал:) также я собираюсь выбросить счетчик циклов. Однако утверждать, что нереально получить более высокие значения – мягко говоря, некорректно. Серийную память нужно читать в отдельной процедуре на уровне основной петли. И нет необходимости при чтении каждого байта полностью инициализировать чтение заново. Достаточно один раз открыть память для чтения, а потом уже считывать последовательные байты, сохраняя их в кольцевом буфере. Процедура-плеер на уровне прерывания просто забирает байты из буфера и отправляет их в порт. Процедура чтения должна регулировать заполнение буфера на предмет исключения переполнений и опустошений. При таком подходе на частоте 8 КГц можно реализовать даже несколько независимых каналов воспроизведения. Если, конечно, Вы не используете 32768 Гц для тактирования MCU:)
я имел ввиду не делая описаных Вами плясок с бубном. я в курсе про эти пляски. у меня даже реалиция есть но она мне не нравится. Хотя если б были б желающие оплатить - сделал бы.