Klassenarbeit
Klassenarbeit
Klassenarbeit
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
CLAUDE-DORNIER-SCHULE<br />
Friedrichshafen<br />
StD Josef Baier<br />
<strong>Klassenarbeit</strong><br />
Fach: Computertechnik<br />
Klasse: TG<br />
Blatt:<br />
Ansteuerung eines Servomotors mittels Pulsweitenmodulation<br />
Mit dem Mikrocontroller-Board soll ein Servomotor mittels Pulsweitenmodulation angesteuert werden.<br />
Dazu soll folgender Signalverlauf am Port P5.1 erzeugt werden.<br />
5 V<br />
0 V<br />
T P0 =1500 µs<br />
Zeit<br />
T T =20000 µs<br />
Bei den Servos verwenden wir eine konstante Träger-Pulsdauer T T = 20 ms = konstant.<br />
Bei einer Pulsdauer von T P = T P0 = 1500 µs ist der Servo im Ruhezustand (n = 0).<br />
Bei größerer Pulsdauer T P >= T P0 nimmt die Drehzahl langsam zu (n > 0),<br />
genauso bei kleinerer Pulsdauer T P
a) An welche Adresse (Interrupt-Vector) springt der PC (Program Counter)?<br />
Ab welcher Adresse (exakte Angabe) muss ich die ISR des Timer0 schreiben?<br />
Mit welcher Assembleranweisung erreicht man, dass die ISR exakt an dieser Adresse beginnt (3<br />
Punkte)?<br />
b) Die ISR des Timer0 soll folgendes ausführen:<br />
• die Startwerte TH0 und TL0 des Timer0 (Träger-Pulsdauer) wieder setzen (Werte aus 1.),<br />
• den Port P5.1 auf 1 (= 5 V) setzen,<br />
• die Startwerte TH1 und TL1 des Timer1 aus Aufgabe 2 setzen,<br />
• den Timer1 starten<br />
• Ende der ISR.<br />
Skizzieren Sie den Programmablaufplan und schreiben Sie die Interrupt-Service-Routine für den<br />
Timer0 in die Datei pwm.asm. Schreiben Sie an den Anfang der ISR den Kommentar „ISR Timer0“.<br />
Speichern Sie das Assemblerprogramm ab (4 Punkte).<br />
5. Interrupt-Service-Routine Timer1<br />
Die ISR des Timer0 hat den Timer1 gestartet.<br />
a) Nach welcher Zeit läuft der Timer1 über und löst deshalb einen Interrupt aus (2 Punkte)?<br />
b) An welche Adresse (Interrupt-Vector) springt der PC (Program Counter)?<br />
Ab welcher Adresse (exakte Angabe) muss man die ISR des Timer1 schreiben (2 Punkte)?<br />
c) Die ISR des Timer1 soll folgendes ausführen:<br />
• Timer1 stoppen,<br />
• den Port P5.1 auf 0 setzen und<br />
• Ende der ISR<br />
Skizzieren Sie den Programmablaufplan und schreiben Sie die Interrupt-Service-Routine für den<br />
Timer1 in die Datei pwm.asm. Schreiben Sie an den Anfang der ISR den Kommentar „ISR Timer1“.<br />
Speichern Sie das Assemblerprogramm ab (4 Punkte).<br />
6. Zu den beiden ISR sei noch folgendes Hauptprogramm gegeben:<br />
start:<br />
jmp start<br />
Beschreiben Sie den exakten Programmablauf (Hauptprogramm einschließlich Initialisierung und der<br />
beiden ISR) (4 Punkte).<br />
7. Wie kann im obigen Programm die Drehzahl geändert werden (2 Punkte)?
Speichern Sie auch während des Arbeitens immer wieder Ihre Ergebnisse ab. Denken Sie daran,<br />
dass insbesondere Rechner mit Microsoft Betriebssystemen abstürzen können.