Schreibe einige Codezeilen, die Port 3.2 und Port 3.4 als Eingang sowie Port 3.3 als
Ausgang definieren, ohne die anderen Bits des Registers zu beeinflussen.
2.
Wozu benötige ich die Interrupt-Funktionalität der Portpins? Was ist eine
Interrupt-Service-Routine?
3.
Schreibe eine Interrupt-Service-Routine für Interrupts, die an Port 3.2 ausgelöst werden,
die bei jedem zehnten Aufrufen eine im Hauptprogramm zugängliche Statusvariable
invertiert. Was ist die potentielle Gefahr dabei?
4.
Entwickle eine kleine Ampelsteuerung. Verbinde dazu drei Leuchtdioden (rot, grün,
gelb) über Vorwiderstände mit drei Portpins. Realisiere nun eine periodische Abfolge
der bekannten Ampelphasen. Verwende für die Pausen eine Warteschleife.
5.
Erweitere die Schaltung um einen Taster, der an einen anderen Portpin angeschlossen
ist. Wenn der Taster gedrückt wird, soll das Ampelprogramm zwischen Tagbetrieb
(normale Signalfolge) und Nachtbetrieb (gelbes Blinklicht) wechseln.
6.
Warum ist die zeitliche Steuerung mit Warteschleifen nicht unbedingt zu empfehlen?
7.
Wie kann ich sicherstellen, dass eine Befehlsfolge nicht durch einen Interrupt
unterbrochen wird? Was sollte ich dabei beachten?
8.
Bei der Abfrage von vielen Tastern werden diese zu so genannten ”Matrix”-Tastaturen
verschaltet. Den Aufbau eines solchen Matrix-Tastenfeldes zeigt Bild 2.10. Wie kann
ich herausfinden, welche Tasten gedrückt sind? Schreibe dazu ein Programm. Welche
zusätzlichen Bauteile sind noch erforderlich?