Gast
#366247
Hi wie funktioniert das mit der Baudraten konfiguration enes ATMEGA 16 ? ich möchte mit einer Baudrate von 31250 Bits/s übertren
|
Anzeige
|
USART Baudrate
Gast
#366247
Hi wie funktioniert das mit der Baudraten konfiguration enes ATMEGA 16 ? ich möchte mit einer Baudrate von 31250 Bits/s übertren
Gast
#366248
#define UART_BAUD 31250 UBRRL = (F_CPU / (16UL * UART_BAUD)) - 1; Branko
Gast
#366249
hey danke Banko für die schnelle Hilfe
Gast
#366250
ooop Branko meine ich sorry
Gast
#366251
noch eine frage hat die takt frequent des µC eigentlich was mit der baudrate des USART zu tun ? 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.
Gast
#366253
und für was steht 16UL ? 16 ist eine konstante Zahl. Das Suffix UL bedeutet, daß die Konstante nicht als int interpretiert wird, sondern als unsigned long. 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
@ 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
hab ich ausprobiert es geht nicht. bekomme von MC trotzdem keine antwort. 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" @ 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 Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|