Добрый день!
Пытаюсь с контроллера отправить на терминал компьютера фразу "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); } }
Заранее спасибо за помощь!
Сообщение отредактировал nvk - Nov 21 2011, 09:36
|