Titelbild Mikrocontroller

15.5. Initialisieren der USART

Die USART muss initialisiert werden, bevor irgendeine Datenübertragung stattfinden kann. Die Initialisierungssequenz besteht normalerweise aus: dem Einstellen des Baudratengenerators, dem Einstellen des Frame Formates und der Freigabe des Senders und Empfängers abhängig davon, welcher benötigt wird. Bei Interruptgetriebener USART Arbeitsweise muss das globale Interruptflag während der Initialisierung des USART gelöscht (und damit alle Interupts gesperrt) sein.

Bevor eine erneute Initialisierung mit Verändern der Baudrate oder des Frame Formates vorgenommen wird, muss man sich vergewissern, dass keine Übertragung läuft, während die Register geändert werden. Das TXC Flag kann genutzt werden, um zu prüfen, ob der Sender alle Übertragungen abgeschlossen hat und das RXD Flag kann verwendet werden, um zu prüfen, ob keine ungelesenen Daten im Empfangsbuffer liegen. Man beachte, dass das TXC Flag vor jeder Übertragung (also bevor in das UDR geschrieben wird) gelöscht werden muss, wenn es in diesem Sinne verwendet werden soll.

Das folgende einfache Beispiel zur Initialisierung des USART ist in Assembler und C identisch. Die Beispiele setzen voraus, dass mit einem Polling und nicht mit Interrupts gearbeitet wird und ein festes Frame Format verwendet wird. Die Baudrate wird als Parameter der Funktion übergeben. Im Assemblercode wird angenommen, dass der Baudraten Parameter in den Registern R17:R16 abgelegt ist. Wenn die Funktion in das UCSRC Register schreibt, muss das URSEL Bit (MSB) gesetzt sein, da sich UBRRH und UCSRC eine I/O Speicherzelle teilen.
Initialisierung des USART

Initialisierung des USART


Weiter fortgeschrittene Initialisierungsroutinen können so ausgelegt sein, dass auch das Frame Format als Parameter übergeben wird und die Interrupts automatisch gesperrt und freigegeben werden usw. Viele Applikationen verwenden allerdings feste Einstellungen für die Baudrate und die Kontrollregister, so das für diese Arten von Applikation das Beispiel direkt in das Programm übernommen werden kann.
Impressum