Hallo, wollte brav die Beispiele eures Tutorials durchgehen und bin gerade bei uart_putc angelangt. Mein Terminal Fenster zeigt mir nur wirre Zeichen anstelle der sich unendlich oft wiederholenden Folge "0123456789". Was mache ich falsch? (Mein Terminal steht auf automatische Erkennung und findet dabei ANSI soweit ich das sehe.) <c> int main(void) { UCR |= (1<<TXEN); UBRR=quarz/16/baud-1; //Initialisieren des seriellen Ports while(1) { int uart_putc(unsigned char c) { while(!(USR & (1 << UDRE))); /* warte, bis UDR bereit */ UDR = c; /* sende Zeichen */ return 0; } char c; for (uint8_t i=0; i<=9; ++i) { c = i + '0'; uart_putc( c ); } } } </c> Freue mich über eine rasche Antwort. Ciao M.V.R
Hi Überprüfe bitte die Baudrate im Terminal und schau ob sie mit der eingestellten Baudrate am µC übereinstimmt. Gruß Robert
Danke dir erstmal! Aber Baudrate stimmt. Datenbit, Stopbits, etc. stimmen auch. Woran könnte es noch liegen? M.V.R
Bist du sicher, dass der µC vom Quarz angetrieben wird und nicht vom internen Oszillator?
Ja, das ist wirklich so. Das UCR ist doch standardmäßig, auf 8 N 1 eingestellt, wenn ich nichts ändere (außer TXEN auf 1), oder?
Öhh, ich glaube, worauf Karl Heinz hinauswollte, ist die Frage, ob die Fusebits korrekt gesetzt sind...
Hat sich geklärt, hatte die falsche Frequenz eingestellt 4MHz anstatt 8. Sorry! Beim nächsten prüfe ich noch sorgfältiger bevor ich euch wieder nerve. Vielen Dank trotzdem für eure Mühen. Super Forum! Ciao M.V.R
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.