Forum: Mikrocontroller und Digitale Elektronik Fehler im UART - Tutorial?


von Björn G. (gustaebel)


Lesenswert?

Guten Tag,

da ich nicht weiß an wen ich mich wenden soll, beschreibe ich das 
Problem mal hier:

Also im Tutorial zum UART

http://www.mikrocontroller.net/articles/AVR-Tutorial:_UART

gibt es im ersten Beispielprogramm einen Fehler, der sich durch die 
anderen Programme durchzieht, es geht um die Berechnung wegen der 
Übertragungfehler mithilfe der Baudrate und der Frequenz des µC

Code:
"
.equ F_CPU = 4000000        // Systemtakt in Hz
.equ BAUD  = 9600           // Baudrate

// Berechnungen
.equ UBRR_VAL   = ((F_CPU+BAUD*8)/(BAUD*16)-1)  // clever runden
.equ BAUD_REAL  = (F_CPU/(16*(UBRRVAL+1)))      // Reale Baudrate
.equ BAUD_ERROR = ((BAUD_REAL*1000)/BAUD-1000)  // Fehler in Promille

.if ((BAUD_ERROR>10) || (BAUD_ERROR<-10))       // max. +/-10 Promille 
Fehler
  .error "Systematischer Fehler der Baudrate grösser 1 Prozent und damit 
zu hoch!"
.endif
"


der Fehler ist in diesen zeilen:

"
.equ UBRR_VAL   = ((F_CPU+BAUD*8)/(BAUD*16)-1)  // clever runden
.equ BAUD_REAL  = (F_CPU/(16*(UBRRVAL+1)))      // Reale Baudrate
"

Dort müsste es in der zweiten zeile ebenfalls UBRR_VAL
 statt UBRRVAL, doch nun der eigentliche Fehler, will man die Seite 
bearbeiten, steht das im "Quellcode" der Seite alles richtig.

Ich hoffe mal, dass das kein altbekannter Fehler ist, und ich mich jetzt 
zum Buhmann gemacht habe.

Gruß Björn

von Stefan B. (stefan) Benutzerseite


Lesenswert?

Danke für die Mitarbeit, Björn.

Diese Stelle zum Überprüfen des Baudratenfehlers kam mehrfach vor, 
teilweise korrekt und teilweise falsch. Habe es im Tutorial korrigiert.

Zu beachten ist jedoch, dass in den downloadbaren ASM-Listings eine 
ältere (?) Version OHNE Überprüfung des Baudratenfehlers angegeben ist.

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
Noch kein Account? Hier anmelden.