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 = 0×00;
UBRRH = 0×00; // nastaveni rychlosti pro krystal 1 MHz
UBRRL = 0×33; // (v pripade taktovani 8 MHz zde pouzijte UBRRL = 0×33; )
UCSRB = 0×18; // povolit vysilani a prijem
UCSRC = 0×86; // ramec dat: 8 datovych, 1 stop bit, bez parity
while(1)
{
znak = uart_getc();
uart_putc(znak);
}
}
ohodnoťte nejlepší odpověď symbolem palce
Zajímavá 0 před 4012 dny |
Sledovat
Nahlásit
|
Otázka ještě nemá žádnou odpověď.
U otázky nebylo diskutováno.
Nový příspěvekBedy | 1528 | |
Michal Kole | 1199 | |
led | 1159 | |
Hlada | 1132 | |
mosoj | 1124 | |
gecco | 904 | |
www | 828 | |
badisko | 817 | |
cochee | 814 | |
Dochy | 727 |
Software |
Hardware |
Internet |
Programování a webdesign |
Sítě |
Bezpečnost |
Ostatní počítače a internet |