Initialisierungsliste und Adressoperator & Warning!

Dependencies:   mbed

Inhalt HIM0Board

BlinkyOOP Beschreibung

main.cpp

Committer:
fpucher
Date:
2015-11-30
Revision:
0:97100177022d

File content as of revision 0:97100177022d:

#include "mbed.h"
/*
DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}
*/
class MyLed {
    DigitalOut *led1;   
// wissen noch nicht auf welchen pin verbunden wird, daher nur ein Zeiger - 
// im Konstruktor wird Objekt erzeugt
 
    MyLed();            
// auf Standardkonstruktor kann von aussen nicht zugegriffen werden, da private
      
// Parametrisierter Konstruktor  - selber Name wie Klasse – 
// als Parameter übernimmt dieser einen pin Namen 
public:
// NEU: Initialisierungsliste und Adressoperator &    
    MyLed(PinName ld1) : led1(&DigitalOut(ld1)){    // WARNING: Taking the address of a temporary in "main.cpp"
    };
// Konstruktor mit new-Operator    
//    MyLed(PinName ld1)
//    {
//        led1 = new DigitalOut(ld1, 0); // erzeuge neues DigitalOut Objekt led1 mit pin ld1 und Initialisierungswert 0 
//    };
    
// Methoden zum Ein-/Ausschalten der LED
    void LedOn()
    {
// Aufruf der Methode write() in Klasse DigitalOut über den Zeiger led1
        led1->write(1);    
    }
    void LedOff()
    {
        led1->write(0);
    }
};
 
int main() 
{
// erzeugen einer Variablen myLed1 der Klasse MyLed mit pin Name als Parameter
    MyLed myLed1(LED1);             
 
    while(1)
    {
        myLed1.LedOn();         // Aufruf der Memeberfunktion (Methode) LedOn()
        wait(0.2);
        myLed1.LedOff();
        wait(0.2);
    }  
}