Цитата(repairDV @ Jun 3 2008, 13:58)

Тут, вероятно, просто нужна настройка. Уже давно не общался с AVR, позабыл, как там настраивается uart. Скорее всего, у вас просто рассогласование по частоте. Нужно подбирать кварц, чтобы не было круглой цифры в мГц. Например, для 51серии стандартная частота кварца - 11,0592 мГц, а не 12 мГц - и только для обеспечения точного согласования для модуля uart. Поэтому, если вы предусматриваете использование асинхронного передатчика, то нужно подбирать кварцы, кратные этому значению - 11,0592. Скажем, 3,6864 мГц вместо 4 мгц, и т.п. Для большей точности лучше, конечно, подбирать частоту по осциллографу, перебирая те данные, которые вы записывете в таймер, если у вас uart работает от таймера.
Вероятно это моя ощибка. Недостаточно чётко изложил свою проблему. Действительно я использую кварц 3,6864МГц, осцилографом не проверял, но сбоев при приёме/передаче за время отладки ни разу не наблюдал. Рассогласование по частоте здесь ни при чём. С уарта я просто пихаю данные "в никуда", то есть на приёмной стороне их никто не принимает(упростим задача, на самом деле конечно не так

Так вот я не могу добиться скорости выставления данных "в никуда" на 115200.
Цитата(aaarrr @ Jun 3 2008, 14:03)

Используйте вместо прерывания по завершению передачи (TXC) прерывание по опустошению DATA-регистра (DRE). Так Вы убиваете даже ту мизерную буферизацию, что имеется в Меге.
А вот это уже похоже на истину... Попробую проверить!