Download - Fakultät 06 - Hochschule München
Download - Fakultät 06 - Hochschule München
Download - Fakultät 06 - Hochschule München
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
28 2 Entwicklung der Software<br />
Bit 7 6 5 4<br />
UCSR0C UMSEL01 UMSEL00 UPM01 UPM00<br />
R/W R/W R/W R/W R/W<br />
Ausgangswerte 0 0 0 0<br />
Initialisierung 0 0 0 0<br />
Bit 3 2 1 0<br />
UCSR0C USBS0 UCSZ01 UCSZ00 UCPOL0<br />
R/W R/W R/W R/W R/W<br />
Ausgangswerte 0 1 1 0<br />
Initialisierung 0 1 1 0<br />
Tabelle 2.4: Initialisierung des USART: Register UCSR0C<br />
Register UBRR0<br />
Im Register UBBR0, dem USART Baud Rate Register, wird die gewünschte<br />
Übertragungsrate des USART in Bits pro Sekunde eingestellt. Der Wert von<br />
UBBR0 errechnet sich zu:<br />
UBBRn =<br />
Fosc<br />
16BAUD − 1 [1]<br />
Um eine möglichst geringe Abweichung der eingestellten Baud-Rate von<br />
den angestrebten 9600 Baud zu erreichen, wird der µC über einen externen<br />
Quarz mit 18,432MHz Taktrate betrieben. UBRR0 ergibt sich somit zu:<br />
UBRR0 = 18,432MHz<br />
16∗9600<br />
− 1 = 119<br />
Einige Werte von UBRR0 für die gängigsten Baudraten bei einem externen<br />
Quarz mit 18,432MHz sind in Tabelle 2.5 aus dem Datenblatt [1] auf Seite 29<br />
aufgeführt. Zusätzlich ist die Abweichung von der angestrebten Baud-Rate<br />
in % angegeben. Diese ist auch der Grund für die Auswahl des verwendeten<br />
Quarzes. Bei einem Takt von 18,432MHz ist laut Tabelle 2.5 bei den<br />
meisten der üblichen Baud-Raten kein wesentlicher Fehler zu erwarten.<br />
Als letzter Schritt wird mit der Anweisung<br />
1 t =UDR0;<br />
sichergestellt, dass der Empfangspuffer geleert ist, was dazu führt, dass die<br />
RXC0 Flag gelöscht und der USART empfangsbereit ist.<br />
2.2.2 Grundlegender Aufbau des Programms<br />
Das Programm besteht aus drei Funktionen. Eine Funktion zum Auslesen<br />
des Empfangspuffers UDR0, genannt „read232“, zwei Interrupt Service<br />
Routinen zur Ausgabe, und der Hauptfunktion „main“ in dem die<br />
zur Ausgabe des jeweiligen Zeichens benötigte ISR eingestellt und aktiviert<br />
wird.