|
Navigation: Bibliotheken > RS232 > Divider |
![]() ![]()
|
Die Funktionen Serial_Init() und Serial_Init_IRQ bekommen als Baudratenparameter einen Teiler (divider) der den Baudratentakt aus dem Prozessortakt ableitet. Der Prozessortakt beträgt 14,7456 MHz.
Laut dem Atmel Prozessor Handbuch wird folgende Formel angewendet um einen divider für eine Baudrate zu ermitteln:
divider = (14745600 / Baudrate / 16 ) -1
Beispiel: 15 = (14745600 / 57600 / 16 ) -1
DoubleClock Modus
Wenn man das High-Bit setzt, wird der DoubleClock Modus eingeschaltet. Man muß dann denn doppelten Wert als divider eintragen. Für 57600 Baud kann man z.B. statt 0x0f (dezimal 15) auch 0x801e benutzen. Für MIDI (31250 Baud) bekäme man einen divider = (14745600 / 31250 / 16 ) -1 = 28,49 . Setzt man nun den DoubleClock Modus, so kommt man viel genauer an den richtigen Wert: 0x8039
divider |
Definition |
Baudrate |
|
||
767 |
SR_BD1200 |
1200bps |
383 |
SR_BD2400 |
2400bps |
191 |
SR_BD4800 |
4800bps |
95 |
SR_BD9600 |
9600bps |
63 |
SR_BD14400 |
14400bps |
47 |
SR_BD19200 |
19200bps |
31 |
SR_BD28800 |
28800bps |
0x8039 |
SR_BDMIDI |
31250bps |
23 |
SR_BD38400 |
38400bps |
15 |
SR_BD57600 |
57600bps |
11 |
SR_BD76800 |
76800bps |
7 |
SR_BD115200 |
115200bps |
3 |
SR_BD230400 |
230400bps |