Forum: Compiler & IDEs USART Baudrate


von turrican (Gast)


Lesenswert?

Hi

wie funktioniert das mit der Baudraten konfiguration enes ATMEGA 16 ?
ich möchte mit einer Baudrate von 31250 Bits/s übertren

von Branko Golubovic (Gast)


Lesenswert?

#define UART_BAUD 31250

 UBRRL = (F_CPU / (16UL * UART_BAUD)) - 1;

Branko

von turrican (Gast)


Lesenswert?

hey danke Banko für die schnelle Hilfe

von turrican (Gast)


Lesenswert?

ooop Branko meine ich sorry

von turrican (Gast)


Lesenswert?

noch eine frage

hat die takt frequent des µC eigentlich was mit der baudrate des USART
zu tun ?

von Christian F. (fasti)


Lesenswert?

Hi!

Jo hast sie! Schau dir mal die Formel von Branko genauer an, da steht
F_CPU und das steht für was? Genau Frequenz CPU in Herz.

von turrican (Gast)


Lesenswert?

und für was steht 16UL ?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

16 ist eine konstante Zahl.

Das Suffix UL bedeutet, daß die Konstante nicht als int interpretiert
wird, sondern als unsigned long.

von Der G. (jonnyk)


Lesenswert?

Kann man auch eine variable baud rate beim mega 16 setzen? wenn ja wie?

Ich benutze basic und habe volgenden code dafür gemacht er funktioniert 
aber nicht.

   If Pind.4 = 1 Then
      $baud = 115200
   End If

   If Pind.4 = 0 Then
      $baud = 56200
   End If

kann mir wer helfen?

bedanke mich im vorraus

von Falk B. (falk)


Lesenswert?

@ Der Grosse (jonnyk)

>Kann man auch eine variable baud rate beim mega 16 setzen? wenn ja wie?

Mit einem scharfen Blick in Handbuch von BASCOM?

Such mal nach BAUD (ohne Dollarzeichen am Anfang).

MFG
Falk

von Der G. (jonnyk)


Lesenswert?

hab ich ausprobiert es geht nicht. bekomme von MC trotzdem keine 
antwort.

von Hans-jürgen H. (hjherbert) Benutzerseite


Lesenswert?

Da ist wohl die maximal mögliche Baudrate überschritten oder 115200 
lässt sich gar nicht genau genug erzeugen.

(F_CPU  BAUD  16) muss eine Zahl ergeben deren Nachkommastellen < 0.03 
oder > 0.97 sind.

Siehe auch die Diskussion Beitrag "Baud rate berechnen"

von Falk B. (falk)


Lesenswert?

@ Hans-jürgen Herbert (hjherbert)

>(F_CPU  BAUD  16) muss eine Zahl ergeben deren Nachkommastellen < 0.03
>oder > 0.97 sind.

Unsinn. Wenn als UBRR ein Wert von 99,5 rauskommt und ich auf 100 oder 
99 runde, ist der Fehler immer noch kleier 1% und damit im grünen 
Bereich. Der relative Fehler durch Rundung darf nicht grösser als 1% 
werden. Die oben stehende Aussage ist mathematisch/technisch falsch.

MFG
Falk

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.