Добрый день!
Пытаюсь с контроллера отправить на терминал компьютера фразу "Hello world!", но ничего не получается. Переходник TTL-RS232 проверял перемычкой на TX и RX - символы нормально приходят на терминал. Скорость - 9600, частота кварца - 8МГц.
Вот исходный код программы:
#include <avr/io.h>
#include <util/delay.h>
void USART_Transmit(char *data)
{
/* Wait for empty transmit buffer */
while (!( UCSRA & (1<<UDRE)));
/* Put data into buffer, sends the data */
int i,s;
s = strlen(data);
for(i=0;i<s;i++)
UDR = data[i];
}
void main(void)
{
int i;
/* Set baud rate */
UBRRH = (unsigned char)(51>>8);
UBRRL = (unsigned char)51;
/* Enable receiver and transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 1stop bit */
UCSRC = (1<<URSEL)|(3<<UCSZ0);
//Десять раз пытаемся отправить фразу
for(i=1;i<11;i++) {
USART_Transmit("HELLO, WORLD!");
_delay_ms(100); }
}
Заранее спасибо за помощь!