Franz Pucher
/
BlinkyOOP
Initialisierungsliste und Adressoperator & Warning!
Inhalt HIM0Board
BlinkyOOP Beschreibung
main.cpp@0:97100177022d, 2015-11-30 (annotated)
- Committer:
- fpucher
- Date:
- Mon Nov 30 10:24:56 2015 +0000
- Revision:
- 0:97100177022d
Initialisierungsliste und Adressoperator &
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
fpucher | 0:97100177022d | 1 | #include "mbed.h" |
fpucher | 0:97100177022d | 2 | /* |
fpucher | 0:97100177022d | 3 | DigitalOut myled(LED1); |
fpucher | 0:97100177022d | 4 | |
fpucher | 0:97100177022d | 5 | int main() { |
fpucher | 0:97100177022d | 6 | while(1) { |
fpucher | 0:97100177022d | 7 | myled = 1; |
fpucher | 0:97100177022d | 8 | wait(0.2); |
fpucher | 0:97100177022d | 9 | myled = 0; |
fpucher | 0:97100177022d | 10 | wait(0.2); |
fpucher | 0:97100177022d | 11 | } |
fpucher | 0:97100177022d | 12 | } |
fpucher | 0:97100177022d | 13 | */ |
fpucher | 0:97100177022d | 14 | class MyLed { |
fpucher | 0:97100177022d | 15 | DigitalOut *led1; |
fpucher | 0:97100177022d | 16 | // wissen noch nicht auf welchen pin verbunden wird, daher nur ein Zeiger - |
fpucher | 0:97100177022d | 17 | // im Konstruktor wird Objekt erzeugt |
fpucher | 0:97100177022d | 18 | |
fpucher | 0:97100177022d | 19 | MyLed(); |
fpucher | 0:97100177022d | 20 | // auf Standardkonstruktor kann von aussen nicht zugegriffen werden, da private |
fpucher | 0:97100177022d | 21 | |
fpucher | 0:97100177022d | 22 | // Parametrisierter Konstruktor - selber Name wie Klasse – |
fpucher | 0:97100177022d | 23 | // als Parameter übernimmt dieser einen pin Namen |
fpucher | 0:97100177022d | 24 | public: |
fpucher | 0:97100177022d | 25 | // NEU: Initialisierungsliste und Adressoperator & |
fpucher | 0:97100177022d | 26 | MyLed(PinName ld1) : led1(&DigitalOut(ld1)){ // WARNING: Taking the address of a temporary in "main.cpp" |
fpucher | 0:97100177022d | 27 | }; |
fpucher | 0:97100177022d | 28 | // Konstruktor mit new-Operator |
fpucher | 0:97100177022d | 29 | // MyLed(PinName ld1) |
fpucher | 0:97100177022d | 30 | // { |
fpucher | 0:97100177022d | 31 | // led1 = new DigitalOut(ld1, 0); // erzeuge neues DigitalOut Objekt led1 mit pin ld1 und Initialisierungswert 0 |
fpucher | 0:97100177022d | 32 | // }; |
fpucher | 0:97100177022d | 33 | |
fpucher | 0:97100177022d | 34 | // Methoden zum Ein-/Ausschalten der LED |
fpucher | 0:97100177022d | 35 | void LedOn() |
fpucher | 0:97100177022d | 36 | { |
fpucher | 0:97100177022d | 37 | // Aufruf der Methode write() in Klasse DigitalOut über den Zeiger led1 |
fpucher | 0:97100177022d | 38 | led1->write(1); |
fpucher | 0:97100177022d | 39 | } |
fpucher | 0:97100177022d | 40 | void LedOff() |
fpucher | 0:97100177022d | 41 | { |
fpucher | 0:97100177022d | 42 | led1->write(0); |
fpucher | 0:97100177022d | 43 | } |
fpucher | 0:97100177022d | 44 | }; |
fpucher | 0:97100177022d | 45 | |
fpucher | 0:97100177022d | 46 | int main() |
fpucher | 0:97100177022d | 47 | { |
fpucher | 0:97100177022d | 48 | // erzeugen einer Variablen myLed1 der Klasse MyLed mit pin Name als Parameter |
fpucher | 0:97100177022d | 49 | MyLed myLed1(LED1); |
fpucher | 0:97100177022d | 50 | |
fpucher | 0:97100177022d | 51 | while(1) |
fpucher | 0:97100177022d | 52 | { |
fpucher | 0:97100177022d | 53 | myLed1.LedOn(); // Aufruf der Memeberfunktion (Methode) LedOn() |
fpucher | 0:97100177022d | 54 | wait(0.2); |
fpucher | 0:97100177022d | 55 | myLed1.LedOff(); |
fpucher | 0:97100177022d | 56 | wait(0.2); |
fpucher | 0:97100177022d | 57 | } |
fpucher | 0:97100177022d | 58 | } |