Avatar uživatele
Registrovaný

ATmega8 USART. Pomoc, vrací nesmyslné znaky.

Zdravím,
po večerech se bavím programováním a tohle mi nedá spát. Chci používat usart komunikaci s atmegou8. Mám tam MAX232CPE a pokud za tímto obvodem spojím RxD a TxD, tak se logicky vrátí hodnota, kterou jsem odeslal, což by mělo značit, že je vše správně zapojeno. Ale když připojím MAX232CPE k atmega8 a spustím terminál začne se mi vracet směs nesmyslných znaků. Čím to může být?

Kód, který používám.

#include <avr/io.h>

// get char
unsigned char uart_getc( void )
{
/* Wait for data to be received */
while ( !(UCSRA & (1<<RXC)) )
;
/* Get and return received data from buffer */
return UDR;
}


// send char
void uart_putc(unsigned char data )
{
while ( !( UCSRA & (1<<UDRE)) )
;
UDR = data;
}


int main(void)
{
char znak;


/***** inicializace uart *****/
UCSRA = 0x00;
UBRRH = 0x00; // nastaveni rychlosti pro krystal 1 MHz
UBRRL = 0x33; // (v pripade taktovani 8 MHz zde pouzijte UBRRL = 0x33; )
UCSRB = 0x18; // povolit vysilani a prijem
UCSRC = 0x86; // ramec dat: 8 datovych, 1 stop bit, bez parity

while(1)
{
znak = uart_getc();

uart_putc(znak);
}

}

Uzamčená otázka – ohodnoťte nejlepší odpověď symbolem palce.

Otázka ještě nemá žádnou odpověď.

Přihlásit se

Položte otázku, odpovězte, zapojte se, …

začněte zde

Reklama

Kvalitní odpovědi v: Počítače a internet

Zlatý Bedy 1525
Zlatý Michal Kole 1198
Zlatý mosoj 1028
Zlatý Hlada 949
Zlatý ge0rge 894
Zlatý www 829
Zlatý led 819
Zlatý badisko 818
Zlatý gecco 795
Zlatý arygnoc 674

Zobrazit celkový žebříček

Facebook

 

Váš požadavek se vyřizuje, počkejte prosím.