Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fragen 2
Theoriefragen¶
(siehe https://developer.mbed.org/users/fpucher/code/HIM0Board/wiki/C%2B%2B-Seite)
- Wie funktioniert der I2C Bus?
 - Zeichnen Sie ein vereinfachtes Timing-Diagramm für das Lesen von einem Byte.
 - Wie werden die notwendigen Pins des I2C Busses an eine Klasse ClassI2C (z.B. LM75B) übergeben? (Beispiel)
 - Wie wird ein neues I2C Bus Objekt im Konstruktor erzeugt? (Beispiel)
 - Schreiben Sie in der Klasse ClassI2C die Methode „read“, die von der I2C Adresse ADDR aus Register REG ein Byte liest.
 - Schreiben Sie in der Klasse ClassI2C die Methode „write“, die auf den I2C Bus für die Adresse ADDR das Register REG den Wert VALUE schreibt.
 - Erzeugen Sie ein neues I2C-Objekt in main mit z.B. der Variablen test der Klasse ClassI2C Klasse und den Pins p27 und p28.
 - Geben Sie ein Beispiel für Initialisierungslisten von parametrisierten Konstruktoren an.
 - Welche Aufgabe hat ein Konstruktor und wie wird er definiert z.B. für die Klasse ClassI2C?
 - Wie wird eine Klasse ClassI2C in C++ erzeugt? (Beispiel)
 - Zeichnen Sie ein Klassendiagramm in UML (Unified Modeling Language) für die I2C Klasse ClassI2C mit den obigen Elementen.
 - Beschreiben Sie den Unterschied zwischen Polling und Interrupt.
 - Was ist eine ISR (Interrupt Service Routine) und beschreiben Sie den prinzipiellen Ablauf?
 - Was darf in einer ISR (Interrupt Service Routine) nicht passieren bzw. vorkommen?
 - Schreiben Sie den notwendigen C++ Code, der eine ISR (Interrupt Service Routine) z.B. für die Taste sw2 am M0 Board aktiviert.
 - Wie kann das Prellen von Tasten verhindert werden?
 - Beschreiben Sie die jeweiligen Einsatzgebiete für Timer, Timeout und Ticker
 - Beschreiben Sie die Funktionsweise der Pulsweitenmodulation (PWM)
 - Was wird bei der PWM unter dem Tastverhältnis (duty cycle) DC verstanden?
 - Ein Tastverhältnis (duty cycle) DC von 25% bei einer PWM hat welche Bedeutung?
 - Berechnen Sie die mittlere Spannung der PWM wenn die Spannung Vcc für 5ms 10V hat und 10ms 0V. Welchem DC entspricht das?
 - Welche Bedeutung haben die Timer im LPC11U24 zu den bereitgestellten PWM-fähigen Pins?
 - Die PWM Klasse bietet mehrere Möglichkeiten den DC einzustellen. Welche Methoden können wofür eingesetzt werden?
 - Worauf ist bei der PWM DC Einstellung acht zu geben, wenn mehrer Pins mit unterschiedlichen DCs verwendet werden sollen?
 - Sollte ein Controller-Board keine PWM an den Pins haben, gibt es trotzdem die Möglichkeit die mittlere Spannung zu regeln?
 - Wie wird ein Pwm-Pin an eine Klasse (z.B. MyPwm) übergeben? (Beispiel)
 - Wie wird ein neues MyPwm Objekt im Konstruktor erzeugt? (Beispiel)
 - Rufen Sie in der Klasse z.B. MyPwm in der Methode LedOn() mit einem MyPwm Objekt die Methode „write“ auf?
 - Schreiben Sie eine neue Methode in der Klasse MyPwm, sodass die Led 2 Mal blinkt.
 - Erzeugen Sie ein neues Objekt in main mit z.B. der Variablen myPwm der Klasse MyPwm und dem Pin p21.
 - Wie wird ein RC Servo Motor mittels einer PWM gesteuert?
 
Programmieraufgaben¶
- Schreiben Sie ein C++ Programm, das eine 100Hz Rechteckschwingung an der LED1 ausgibt. Wird die Taste SW2 gedrückt soll die Frequenz verdoppelt werden. Bei einem weiteren Tastendruck sollen wieder die 100Hz ausgegeben werden.
 - Schreiben Sie ein C++ Programm, das Anzahl wie oft die Taste SW2 gedrückt wurde zählt und die LED1 leuchten soll wenn die Taste 10 Mal gedrückt wurde.
 - An den Rot-Anteil der RGB-LED (R-LED) sollen 10.000 Pulse gesendet werden, wobei die R-LED eine geringe Helligkeit haben soll, nach weiteren 10.000 Pulsen etwas heller werden usw. bis sie ganz Hell ist. https://developer.mbed.org/forum/helloworld/topic/3329/
 - Wie kann man PwmOut ein bzw. ausschalten. Probieren Sie den duty cycle auf 0 bzw. 1 zu setzen?
 - Aufgaben I2C