Сергей Борщ (16.10.2005 21:40, просмотров: 1) ответил Xanoy на Вобщем пробывал, ниче не получилось.
Может я чего-то не понимаю, но прерывание сигнализирует, что буфер передатчика пуст. Не сдвиговый регистр, из которого байт выталкивается, а буферный. Т.е. если я правильно все представляю, то происходит примерно такое:
1) Вы настраиваете первую скорость, разрешаете прерывания. Буфер и сдвигатель при этом пусты
2) Возникает прерывание, в кладете первый байт в буфер, он проваливается тут же в пустой сдвигатель и начинает передаваться. В это время вы заканчиваете обработчик и выходите из него разрешая глобальные прерывания
3) Поскольку байт "провалился" сразу в сдвигатель - буфер пуст и выставлен флаг прерывания.
4) Вы попадаете в обработчик и перестраиваете скорость. Но байт ведь еще не успел передаться!