Witam
Program jaki w zasadzie skopiowałem z katalogu atmegi8:
Jedynie przy transmisji 300bps literki wciskane na klawiaturze jako tako pokrywają się z tymi wyświetlonymi w hyperterminalu win xp. Inne prędkości to krzaki albo przypadkowe litery. uC pracuje na wewnętrznym oscylatorze 8MHz. Jeśli zewrę linie nadajnika i odbiornika na wyjściu z MAX232 wszystko się zgadza więc coś sam uC miesza tylko nie wiem co.... W ustawieniach portu ustawiam prędkość taką jaka jest w inicjalizacji UARTa, bity danych: 8, sterowanie przepływem: brak.
Z góry dzięki za pomoc.
Program jaki w zasadzie skopiowałem z katalogu atmegi8:
void USART_Init( unsigned int baud )
{
/* Set baud rate */
UBRRH = (unsigned char)(baud>>8);
UBRRL = (unsigned char)baud;
/* Enable Receiver and Transmitter */
UCSRB = (1<<RXEN)|(1<<TXEN);
/* Set frame format: 8data, 2stop bit */
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);
}
void USART_Transmit( unsigned char data )
{
/* Wait for empty transmit buffer */
while ( !( UCSRA & (1<<UDRE)) )
;
/* Put data into buffer, sends the data */
UDR = data;
}
unsigned char USART_Receive( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}
int main()
{
DDRB = 0xFF;
DDRD = 0xFF;
lcd_init();
USART_Init(600);
//unsigned char wynik[1];
while(1)
{
USART_Transmit(USART_Receive());
}
}
Jedynie przy transmisji 300bps literki wciskane na klawiaturze jako tako pokrywają się z tymi wyświetlonymi w hyperterminalu win xp. Inne prędkości to krzaki albo przypadkowe litery. uC pracuje na wewnętrznym oscylatorze 8MHz. Jeśli zewrę linie nadajnika i odbiornika na wyjściu z MAX232 wszystko się zgadza więc coś sam uC miesza tylko nie wiem co.... W ustawieniach portu ustawiam prędkość taką jaka jest w inicjalizacji UARTa, bity danych: 8, sterowanie przepływem: brak.
Z góry dzięki za pomoc.