Initialisierungsliste und Adressoperator & Warning!

Dependencies:   mbed

Inhalt HIM0Board

BlinkyOOP Beschreibung

Revision:
0:97100177022d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Nov 30 10:24:56 2015 +0000
@@ -0,0 +1,58 @@
+#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);
+    }  
+}     
\ No newline at end of file