03.07.2014 Aufrufe

Klassenarbeit

Klassenarbeit

Klassenarbeit

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.

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.

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!