Но если сперва принять хотя бы один символ, то передача работает.
Код: Выделить всё
clr temp ;
sts UCSR0B,temp ;
ldi temp,0b00000110 ; 8бит, 1стоповый бит, нет четности, асинхронный режим
sts UCSR0C,temp ;
clr temp ;
sts UBRR0H,temp ;
ldi temp,29 ; ubrr=29
sts UBRR0L,temp ; 9600 бод/сек
ldi temp,0b00011000 ; установка TXEN RXEN
sts UCSR0B,temp ; USART вклКод: Выделить всё
USART_transmit:
lds temp2,UCSR0A ;
sbrs temp2,(UDRE0) ;ждем пока содержимое из UDR0 перегрузится в сдвиговый регистр
rjmp USART_transmit ;
sts UDR0,temp ;отправляем
ret ;возврат из процедуры отправки
USART_receive:
lds temp2,UCSR0A ;
sbrs temp2,(RXC0) ;ждем приема символа (установка RXC)
rjmp USART_receive ;
lds temp,UDR0 ;читаем
ret ;возврат из процедуры приемаСпасибо.
p.s. прогоняю в AVR Studio - все работает.