Franz Pucher / HIM0Board

You are viewing an older revision! See the latest version

Blinky Codes 1

Methoden

Standard Blinky

aus mbed-Simulator

und Intro

Copy-Paste die folgenden Codes

#include "mbed.h"

DigitalOut led(LED1);

int main() {
    while (1) {
        led = !led;
        printf("Blink! LED is now %d\n", led.read());

        wait_ms(500);
    }
}

Mit Funktionen

#include "mbed.h"

DigitalOut led(LED1);  // globale Variable led
 
void LedOn() {
    led = 1;
}
void LedOff() {
    led = 0;
}
int read() {
    return led.read();
}

int main() {
    printf("Blink LED is now %d\n", read());
    while (1) {
        LedOn();
        wait_ms(500);
        LedOff();
        wait_ms(500);
    }
}

Funktionsprototyping

#include "mbed.h"
// Funktions-Prototyping bzw. -Deklaration
void LedOn();
void LedOff();
int read(); 

DigitalOut led(LED1);   // globale Variable led

int main() {
    printf("Blink LED is now %d\n", read());
    while (1) {
        LedOn();        // Funktionsaufruf
        wait_ms(500);
        LedOff();
        wait_ms(500);
    }
}
// Funktions-Definition
void LedOn() {
    led = 1;
}
void LedOff() {
    led = 0;
}
int read() {
    return led.read();
}

Mit Parameter

#include "mbed.h"
// Funktions-Prototyping bzw. -Deklaration
void LedOn(DigitalOut );    // nur Datentype für Compiler von Interesse
void LedOff(DigitalOut ld);
int read(DigitalOut led); 

DigitalOut led(LED1);       // globale Variable led

int main() {
    printf("Blink LED is now %d\n", read(led));
    while (1) {
        LedOn(led);         // Funktionsaufruf
        wait_ms(500);
        LedOff(led);        // aktueller Parameter led aud Stack
        wait_ms(500);
    }
}
// Funktions-Definition
void LedOn(DigitalOut ld) { // formaler Parameter ld initialisiert mit Wert von Stack
    ld = 1;
}
void LedOff(DigitalOut led) {
    led = 0;
}
int read(DigitalOut digOut) { 
    return digOut.read();
}

Mit Klasse HasA

#include "mbed.h"

class Blinky {
    DigitalOut _myled;
public:
    Blinky(PinName ld) : _myled(ld) {}
    void LedOn() {
        _myled = 1;
    }
    void LedOff() {
        _myled = 0;
    }
    int read() {
        return _myled.read();
    }
};

Blinky led(LED1);

//DigitalOut led(LED1);

int main() {
    printf("Blink LED is now %d\n", led.read());
    while (1) {
        led.LedOn();
        wait_ms(500);
        led.LedOff();
        wait_ms(500);
    }
}

Überladene Methode

#include "mbed.h"
 
class Blinky {
    DigitalOut _myled;
public:
    Blinky(PinName ld) : _myled(ld) {}
    void LedOn() {
        _myled = 1;
    }
    // überladene Methode LedOn
    void LedOn(int wert) {
        _myled = wert;
    }
    void LedOff() {
        _myled = 0;
    }
    int read() {
        return _myled.read();
    }
};
 
Blinky led(LED1);
 
int main() {
    printf("Blink LED is now %d\n", led.read());
    while (1) {
        led.LedOn(1);
        wait_ms(500);
        led.LedOff();
        wait_ms(500);
    }
}

Überladener Konstruktor

#include "mbed.h"
 
class Blinky {
    DigitalOut _myled;
public:
    Blinky() : _myled(LED1) {}          // Standardkonstruktor
    Blinky(PinName ld) : _myled(ld) {}  // überladener Konstruktor
    void LedOn() {
        _myled = 1;
    }
    // überladene Methode LedOn
    void LedOn(int wert) {
        _myled = wert;
    }
    void LedOff() {
        _myled = 0;
    }
    int read() {
        return _myled.read();
    }
};
 
//Blinky led(LED1);  // Konstruktor mit LED-Pin als Argument
Blinky led;          // Aufruf Standardkonstruktor

int main() {
    printf("Blink LED is now %d\n", led.read());
    while (1) {
        led.LedOn(1);
        wait_ms(500);
        led.LedOff();
        wait_ms(500);
    }
}

Vererbung IsA

#include "mbed.h"

class DigOut : public DigitalOut
{
public:
    DigOut() : DigitalOut(LED1, 0) {};
    DigOut(PinName _pin) : DigitalOut(_pin, 0) {  }
    
    void LedOn() {
        write(1);
    }
    void LedOff() {
        write(0);
    }
    DigitalOut &operator= (int value)
    {
        write(value);
        return *this;
    }
};

DigOut led1;
DigOut led(LED2);

int main() {
    while (1) {
        led = !led;
        printf("Blink! LED is now %d\n", led.read());
//        led.LedOn();
//        wait_ms(500);
//        printf("Blink! LED is now %d\n", led.read());
//        led.LedOff();
        wait_ms(500);    
    }
}

Deklaration

Diskussion Deklaration versus Definition


All wikipages