Hallo, probiere gerade bei einem AVR Mega8 den UART in Betrieb zu nehmen und eine Verbindung zum PC aufzubauen. Das klappt mit void uart0_init(void) { UCSRB = 0x00; //disable while setting baud rate UCSRA = 0x00; UCSRC = (1 << URSEL) | (3 << UCSZ0); UBRRL = 0xBF; //set baud rate lo UBRRH = 0x00; //set baud rate hi UCSRB = (1 << RXEN) | (1 << TXEN); } auch "gut". Ich kann Zeichen senden und empfangen. Was mich aber stutzig macht (im main): while (1) { if (PINB & (1<<PINB3)) { sent = 0; } else { PORTC &= ~(1<<PC0); } if (PINB & (1<<PINB2)) { if (sent < 10) { uart_putc('H); uart_putc('M'); uart_putc('\n'); uart_putc('\r'); sent ++; } else { PORTC |= (1<<PC3); } } else { PORTC &= ~(1<<PC3); } } wird nach dem Einschalten/Reset ständig gesendet, obwohl ich den Taster an PortB.2 nie drücke. Woran liegt das? Außerdem bekomme ich beim verwenden der uart_puts("HM\n\r\0"); Funktion nur "komische" Zeichen geliefert, d.h. ich kann nur einzelne Zeichen empfangen. Was mache ich falsch? Hans
Wie ist der Taster denn angeschlossen? Low-Side oder High-Side? Sollte mich nicht wundern, wenn die UART aufhört zu senden, wenn Du den Taster drückst...
AAAARRRRGGGGGHHHH. wie peinlich. Sorry für das Posting, aber es ist echt so wie du sagst. Hast du evtl. auch eine Lösung für das 2. Problem, das ich bei uart_puts nur komische Zeichen empfange? Hans
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.