Probeklausur 4 - Lösungen
Zurück zu den Aufgaben · Formelsammlung
Teilpunkte für erkennbaren Rechenweg auch bei Zahlenfehler.
Aufgabe 1 - Grundlagen & C (16 P) [Kap. 1]
| Teil | Antwort | Begründung |
|---|---|---|
| 1.1 | richtig | Adressen müssen auf Struct-Zeiger gecastet werden - übliche und nötige Praxis. |
| 1.2 | richtig | static reduziert die Sichtbarkeit auf die Moduldatei. |
| 1.3 | richtig | -O0 behält stabiles Zeilen-Mapping, ideal zum Debuggen. |
| 1.4 | falsch | Sensoren/Aktoren sind extern; der MC integriert Timer, I/O, ADC usw. |
| 1.5 | richtig | Bitschieben: 1<<18 setzt Bit 18; 0xF0>>4 = 0x0F. |
| 1.6 | richtig | Definition des DA-Wandlers. |
Aufgabe 2 - Timer / PWM (22 P) [Kap. 5]
Gegeben: , 16-Bit, , Duty 40 %.
2.1 .
2.2 -> nächstgrößer: Prescaler = 2. (RC = 12500 <= 65536.)
2.3 .
2.4 .
2.5 .
2.6 .
2.7 20 ms Periode -> ; Tastverhältnis .
Aufgabe 3 - Parallele I/O (14 P) [Kap. 3]
3.1 0x66 = 0b1100110 -> Bits 1, 2, 5, 6 = Segmente b, c, f, g -> Ziffer 4.
3.2 Low-aktiv: Die LED leuchtet, wenn der Ausgang Low ist; der Strom fließt von über die LED in den Pin (Sink Current). High-aktiv: Die LED leuchtet bei High; der Pin liefert den Strom (Source Current). Low-aktiv ist häufiger, weil die Ausgangsstufe eines MC nach Masse meist mehr Strom sinken kann als sie sourcen kann, und der Prozessor den LED-Strom nicht selbst bereitstellen muss - das ist elektrisch günstiger und schont die Versorgung.
Aufgabe 4 - Signalverarbeitung (18 P) [Kap. 7]
4.1 Linien bei 200 Hz (Amplitude 3), 400 Hz (Amplitude 1), 800 Hz (Amplitude 2).
4.2 -> -> enthalten, Amplitude 2.
4.3 -> (knapp darüber, z. B. 1601 Hz).
4.4 .
4.5 .
4.6 .
Aufgabe 5 - CRC (14 P) [Kap. 10]
5.1 -> Bits 4, 3, 0 -> 11001.
5.2 Nachricht 1011 + 4 Nullen = 10110000, Division (mod 2) durch 11001:
10110000
11001
-----
01111000
11001
-----
0010100 -> ausrichten auf nächste 1
11001
-----
0000101
Rest (4 Bit) = 0101 -> Prüfbits = 0101.
5.3 Gesendet = Daten + FCS = 1011 + 0101 = 10110101 binär = 0xB5 hexadezimal.
5.4 Ein Paritätsbit (VRC) erkennt nur eine ungerade Anzahl von Bitfehlern (1-Bit-Fehler) und versagt bei geradzahligen Fehlern. CRC erkennt über die Polynomdivision Bündelfehler und mehrfache Fehler zuverlässig; die Erkennungsstärke hängt vom Generatorpolynom ab.
Aufgabe 6 - Seriell & Leitungscodes (10 P) [Kap. 4, Kap. 10]
6.1 9600 Baud, 8 Datenbits, N = keine Parität, 1 Stoppbit.
6.2 Rahmen = 1 + 8 + 0 + 1 = 10 Bit pro Zeichen -> Zeichen/s.
6.3 In der Mitte jedes Bits liegt eine Flanke -> Takt- und Dateninformation stecken im Signal, der Empfänger kann sich selbst synchronisieren. Preis: doppelte Bandbreite (Baudrate = 2 x Bitrate).
6.4 G. E. Thomas: steigend = 0, fallend = 1 -> Flanken (steigend, steigend, fallend, fallend) = 0 0 1 1.
Aufgabe 7 - Interrupts / Software-Interrupt (6 P) [Kap. 9, Kap. 6]
7.1 Ein Software-Interrupt (SVC beim Cortex-M3, SWI beim ARM7) ist eine synchrone, benutzerdefinierte Programmunterbrechung, um vom User Mode in den privilegierten (Supervisor/Handler) Mode zu wechseln - so ruft Anwendungscode kontrolliert Systemdienste (z. B. putchar) auf.
7.2 Zwei von: Automatisches Stacking (Register werden per HW gesichert), Tail-Chaining (direkter Sprung in die nächste ISR ohne Pop/Push), Late-Arriving (Wechsel zu höher-prioritärem Interrupt während des Stacking), verschachtelte Interrupts (Preemption).