| Zeile 48: | Zeile 48: | ||
==Programmierung== | ==Programmierung== | ||
| − | |||
| − | |||
===Baudrate einstellen=== | ===Baudrate einstellen=== | ||
| − | Um die Baudrate einzustellen muss | + | Um die Baudrate einzustellen muss erstmal das DLAB-Bit gesetzt werden, es ist eine Art Umschaltbit um 12 Register über 8 I/O-Port-Adressen benutzen zu können. Dafür muss im LineControl-Register das 7. Bit gesetzt sein. |
| − | Die Baudrate wird | + | Die Baudrate wird allerdings nicht direkt gespeichert, es wird immer nur ein Teiler gespeichert. Diesen kann man wie folgt berechnen:\ |
''t = 115200/b''\ | ''t = 115200/b''\ | ||
Wobei ''t'' der Teiler und ''b'' die Baudrate ist. | Wobei ''t'' der Teiler und ''b'' die Baudrate ist. | ||
| − | Nun kann | + | Nun kann in den Transmitting-Buffer das Lowbyte des Teilers und in das InterruptEnable-Register das Highbyte geschrieben werden. |
| − | Danach sollte | + | Danach sollte das DLAB-Bit wieder zurückgesetzt werden. |
===Parität setzen=== | ===Parität setzen=== | ||
| − | Es gibt | + | Es gibt vier verschiedene Paritäten: ''Odd'', ''Even'', ''High Parity'' und ''Low Parity''. |
| − | Diese setzt man | + | Diese setzt man mit Hilfe von drei Bits, es sind die Bits 3-5 des LineControl-Registers. |
{| {{prettytable}} | {| {{prettytable}} | ||
! Parität || Bit 3 || Bit 4 || Bit 5 | ! Parität || Bit 3 || Bit 4 || Bit 5 | ||
| Zeile 79: | Zeile 77: | ||
===Bytelänge setzen=== | ===Bytelänge setzen=== | ||
| − | Die Bytelänge bestimmt wie viel Bits ein Byte ergeben. Heutzutage werden eigentlich immer 8 Bits zu einem Byte zusammengefasst. Ein Byte kann 5 bis 8 Bits haben. Zum Setzen der Anzahl werden Bits 0 und 1 im LineControl-Register benutzt. 00b entspricht 5 Bits 01b 6 usw. Also einfach die Anzahl an Bits minus 5 und in einen | + | Die Bytelänge bestimmt wie viel Bits ein Byte ergeben. Heutzutage werden eigentlich immer 8 Bits zu einem Byte zusammengefasst. Ein Byte kann 5 bis 8 Bits haben. Zum Setzen der Anzahl werden Bits 0 und 1 im LineControl-Register benutzt. 00b entspricht 5 Bits 01b 6 usw. Also einfach die Anzahl an Bits minus 5 und in einen Zwei-Bit-Wert wandeln. |
===Anzahl Stoppbits setzen=== | ===Anzahl Stoppbits setzen=== | ||
| Zeile 85: | Zeile 83: | ||
===Senden=== | ===Senden=== | ||
| − | + | Um Daten Senden zu können muss erst überprüft werden, ob überhaupt gesendet werden darf. Wenn Bit 5 des LineStatus-Registers gesetzt ist darf gesendet werden. Dazu wir das zu sendende Byte in den Transmitting-Buffer geschrieben. | |
===Empfangen=== | ===Empfangen=== | ||