Hej mam płytke evbavr05 z atmega16 propoxa. Próbuję odpalić transmisję po RSie. I lipa. Znaki owszem trafiają z PC do atmegi, ale niestety w drugą stronę już nie. Przedzowniłem płytkę - połączenia od gniazdka do st3232 są poprawne, tak samo od mikroproca do st3232. Program wziąłem od propoxa, ale też testowałem kod, który jest w datashecie atmegi. Zawsze to samo. Kable też sprawdziłem - są ok (przy zwarciu rx i tx na kablu na terminalu jest echo)
Wartosci rejsetrów uartu są następujące (po wywołaniu funkcji UART_putchar:
UCSRA :00100000
UCSRB: 11011000
UCSRC: 0x00
inicjalizacja rsa:
wysylanie danych:
Z góry dzięki za wszelką pomoc
Proszę poprawić pisownię!
Robak
Wartosci rejsetrów uartu są następujące (po wywołaniu funkcji UART_putchar:
UCSRA :00100000
UCSRB: 11011000
UCSRC: 0x00
inicjalizacja rsa:
void UART_init(unsigned int ubrr)
{
/* 4800 bit/s */
UBRRH = (unsigned char)(ubrr>>8);
UBRRL = (unsigned char)ubrr;
UCSRB = _BV(TXCIE)|_BV(RXCIE)|_BV(RXEN)|_BV(TXEN);
/* 8-bit dane, 1-bit stopu, prak bitu parzystosci */
UCSRC = (1<<URSEL)|(0<<USBS)|(3<<UCSZ0);
}
wysylanie danych:
void UART_putchar(char c)
{
UDR = c; // wpisz c do rejestru UDR
loop_until_bit_is_set(UCSRA,TXC); // czekaj na zakonczenie transmisji
UCSRA |= _BV(TXC); // ustaw bit TXC w rej. USR
}
Z góry dzięki za wszelką pomoc
Proszę poprawić pisownię!
Robak