01.10.2013 Aufrufe

Download - Fakultät 06 - Hochschule München

Download - Fakultät 06 - Hochschule München

Download - Fakultät 06 - Hochschule München

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

30 2 Entwicklung der Software<br />

zur Rückgabe des Pufferinhaltes an die aufrufende Funktion erst ausgeführt<br />

wird, wenn der Empfangspuffer gefüllt ist. Ist der Empfangspuffer<br />

leer, so ist RXC0=0 und es wird das Schleifenkriterium erneut bezüglich<br />

eines weiteren Durchlaufes der Schleife überprüft.<br />

Die ISRs (Interrupt Service Routine)<br />

Zur Ausgabe der Zeichen auf das Display stehen zwei verschiedene Interrupt<br />

Service Routinen zur Verfügung. Wie auf Seite 9 in Abbildung 1.1,<br />

gezeigt, verfügt jeder Eingangspin über eine PCINTXX Quelle, eine Pin<br />

Change Interrupt Quelle.<br />

Dies bedeutet, dass bei Änderungen der an den Eingangspins anliegenden<br />

Spannungen durch den zugehörigen Interrupt Vektor eine Interrupt Service<br />

Routine ausgelöst werden kann. Um nur den Interrupt des für die Ausgabe<br />

des empfangenen Zeichens relevanten Eingangspins zuzulassen, werden,<br />

in der Hauptfunktion main(), in den Registern PCMSKn (Pin Change<br />

Mask Register) die einzelnen I/O Pins für den jeweiligen Interrupt Vektor<br />

und im PCICR Register (Pin Change Interrupt Control Register) der<br />

korrespondierende Vektor selbst, aktiviert beziehungsweise deaktiviert.<br />

In Tabelle 2.6 auf Seite 30 sind die Eingangspins mit den zugehörigen Interrupt<br />

Vektoren und den entsprechenden Werten der Kontrollregister aufgeführt.<br />

Pin Interrupt Quelle Interrupt Vektor PCICR<br />

PCMSKn<br />

n=0 n=2<br />

PB0 PCINT0 PCINT0_vector 0x01 0x01 -<br />

PD7 PCINT23 PCINT2_vector 0x04 - 0x80<br />

PD6 PCINT22 PCINT2_vector 0x04 - 0x40<br />

PD5 PCINT21 PCINT2_vector 0x04 - 0x20<br />

PD4 PCINT20 PCINT2_vector 0x04 - 0x10<br />

PD3 PCINT19 PCINT2_vector 0x04 - 0x08<br />

PD2 PCINT18 PCINT2_vector 0x04 - 0x04<br />

Tabelle 2.6: Die Eingangspins mit zugehörigen Interrupt Vektoren und Kontrollregistern<br />

ISR zu den Eingängen PD2:7:<br />

1 ISR ( PCINT2_vect )<br />

{<br />

3 u i n t 8 _ t puffer =(PIND & PCMSK2) ;<br />

Der Variable puffer wird in Zeile 3 des Quellcodes ein Maß zur Beurteilung<br />

des Pegels am Eingangspin zur Zeit des Interrupt-Ereignisses zugewiesen.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!