У меня возникла проблема с USART'ом на моей ATmega8. К процессору подключена микросхема преобразования уровней(MAX232), к ней со стороны RS232 не подключено ничего. Когда я просто пытаюсь принять байт, всё работает нормально, байт не принемается, а вот когда я перед принятием байта посылаю байт через USART, то принимается какой то байт, чего быть не должно.
Собственно, сам код:
Код
USART_Transmit:
sbis UCSRA, UDRE
rjmp USART_Transmit
out UDR, r16
ret
USART_Receive:
sbis UCSRA, RXC
rjmp USART_Receive
in r16, UDR
ret
...
rcall USART_Transmit
rcall USART_Receive
rcall TextOut
...
А если закоментить строку:
Код
..
;rcall USART_Transmit
...
то всё работает правильно, текст не выводится. Я делал задержку между вызовами этих функций, ничего это не дало. Функции USART_Transmit/USART_Receive взяты из ДШ ATmega8.
Нет повести печальнее на свете, чем повесть о хреновом интернете.