Hallo, wie bekomme ich UART0 an einem Mega162 zum laufen? Die Beispielprogramme vom Tutorial funktionieren nicht. Und wo genau ist der Unterschied zwischen USART und UART?
Jo, hab ich getan, aber wenn ich die Zahl 155 sende kommt beim PC 128 128 000 an. Bei 1 kommt 128 000 an und bei 0 und 255 kommt garnichts an. Warum das???
Baudrate und die Anzahl der Daten- und Stopbits stimmen überein? MfG Andreas Jäger
Baudrate wird berechnet mit: .equ CLOCK = 8000000 .equ BAUD = 9600 .equ UBRRVAL = CLOCK/(BAUD*16)-1 ldi temp1, LOW(UBRRVAL) out UBRR0L, temp1 ldi temp1, HIGH(UBRRVAL) out UBRR0H, temp1 sbi UCSR0B,TXEN ; TX aktivieren Der AVR läuft mit einem 8 MHz Quarz. Ich hoffe natürlich, daß ich die Fusebits richtig gesetzt habe, nicht daß der AVR den Takt halbiert oder so. Kann man das mit den Fusebits?
Ich meinte eigentlich, ob die Baudrate, Anzahl Daten- und Stopbits mit den Einstellungen am PC übereinstimmen (ist ein beliebter Fehler...). Da ich AVR nicht kenne, kann ich Deine Fragen so nicht beantworten. MfG Andreas (PIC ist mein Leben) Jäger
Aha, ich habe jetzt alle Baudraten getestet und bei 1200 funktionierte es dann. Warum 1200? Ich hatte doch angegeben, daß ich eine Baudrate von 9600 haben will. 1200 ist ein 8tel von 9600, also wird mein AVR wohl nur mit 1/8 von 8 MHz, also 1 MHz laufen, oder? Wenn ich jedoch die Konstante CLOCK von 8000000 auf ändere 1000000 bekomme ich bei eine Baudrate von 1200 keinen Wert mehr, bei 4800 250 und bei 9600 219, obwohl ich 155 gesendet habe.
Fusebits: CKSEL0 : 1 CKSEL1 : 0 CKSEL2 : 1 CKSEL3 : 1 SUT0 : 1 SUT1 : 0 CKOUT : 1 CKDIV8 : 0
das gleiche problem hatte ich auch mal. bei mir hat ein geschirmtes kabel den erfolg gebracht.
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.