Initialisierungsliste und Adressoperator & Warning!

Dependencies:   mbed

Inhalt HIM0Board

BlinkyOOP Beschreibung

Committer:
fpucher
Date:
Mon Nov 30 10:24:56 2015 +0000
Revision:
0:97100177022d
Initialisierungsliste und Adressoperator &

Who changed what in which revision?

UserRevisionLine numberNew 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 }