Цитата Сообщение от svofski Посмотреть сообщение
По-моему тут оптимизировать уже нечего, в рамках принятой концепции все на месте. Чтобы избавиться от задержек совсем, надо менять концепцию.

Чтобы было максимально просто и не заморачиваться на специфическое железо, я бы сделал так:

* Создаются 2 пинг-понг буфера. ...
Интересная идея. А если сделать один буфер? Допустим, так:
- Основная программа подготавливает данные и сливает их в массив, допустим, на 256 байт. И есть две переменных, первая -- индекс, откуда сейчас читаем, а вторая -- куда пишем.
- Как буфер заполнится, запускаем таймер на время, равное периоду вывода 1 байта (8 бит). По прерыванию с него выводим байт с позиции чтения, делаем индекс чтения +1.
- Далее основная программа заполняет с максимальной скоростью буфер до состояния "позиция записи" = ("позиция чтения" - 1), а по таймеру идёт непрерывный вывод данных из буфера. (Естественно, при достижении конца буфера запись циклически начнётся с его начала.)

Нормально так будет?

Цитата Сообщение от zebest Посмотреть сообщение
а елси весь файл в буфер зачитать а потом уже транслировать?? емкости ардуны не хватит?? а если Мегу взять ?
Не, там оперативки всего-то 2 Кб, на меге -- 8 Кб... Ну если только во флеш переносить.