Цитата(Сергей Борщ @ Nov 13 2007, 14:33)

а UIIR_NO_INT случайно не равно нулю?
Единичке она равна. Да я и просто iid инициализировал нулем. Я бы давно соскочил с этого поганого карма на реалвью, да память внешняя прицеплена - не разобрался со скратчем.
Цитата(abcdefg @ Nov 13 2007, 14:34)

1. Зачем цикл по флагу прерывания, если и так обработчик прерывания + циклы в приеме/передаче?
2. Вполне допускаю, что keil "не понимает" такой конструкции while(((iid = U1IIR) & UIIR_NO_INT)
3. iid=0, такая вот "отключенная оптимизация". Была похожая фигня, решалась через указатели...
1 - все так и должно быть, дабы из фифо все выбрать - борюсь с невекторными прерываниями.
2 - а в других местах отлично понимает. Видно с оптимизацией его переклинило. Эх, так хорошо все начиналось. Я уже и волатайл ставил перед перменной. Как только цикл вайл - заходит только если напрямую указать вайл(1){}