Bulme Codes

Beispiel 1

Beispiel 1: Erzeugen Sie die Klasse TwoLeds mit einem Konstruktor für zwei Leds und folgenden Methoden:

http://ec2-52-211-146-247.eu-west-1.compute.amazonaws.com:7829/#user_1529343534023

#include "mbed.h"

class MyLed {
    public:
        MyLed(PinName pin) : _pin(pin){   // Initalisierungsliste
            _pin = 0;                     // Initalisierung mit 0
        }
        
        void ledOn(void){
            _pin=1;
        }
        void ledOff(void){
            _pin=0;
        }
        void printStatus(void){
            printf("Blink! LED is now %d\n", _pin.read());
        }
        
    private:
        DigitalOut _pin;
};

class TwoLed {
    public:
        TwoLed(PinName pin1, PinName pin2) : _pin1(pin1), _pin2(pin2) {   // Initalisierungsliste
            _pin1 = 0;                     // Initalisierung mit 0
            _pin2 = 0;
        }
        
        void ledOn(void){
            _pin1=1;
            _pin2=1;
        }
        void ledOff(void){
            _pin1=0;
            _pin2=0;
        }
        
        void ledX(void){
            _pin1 = _pin2;
            _pin2 = !_pin2;
        }
        
        void printStatus(void){
            printf("LED Status:\n LED1: %d\n LED2: %d\n", _pin1.read(), _pin2.read());
        }
        
    private:
        DigitalOut _pin1, _pin2;
};

//---------------------------------------------------



TwoLed twoled1(LED3, LED4);

MyLed myled1(LED1);


int main() {
    while (1) {
        
        // schalten einer einzelnen LED, mit der Klasse "MyLed"
        for(int i = 0; i < 5; i++){
            myled1.ledOn();
            myled1.printStatus();
        
            wait_ms(300);
        
            myled1.ledOff();
            myled1.printStatus();
        
            wait_ms(300);
        }
        
        // schalten von zwei LEDs, mittels der "TwoLed"-Klasse
        
        // fuenfmalige abwechslung von Ein und Ausschaltung der beiden LEDs
        for(int i = 0; i < 5; i++){
        
            twoled1.ledOn();
            twoled1.printStatus();
        
            wait_ms(300);
        
            twoled1.ledOff();
            twoled1.printStatus();
        
            wait_ms(300);
        }
        
        // fuenfmaliges alternieren der LEDs
        for(int i = 0; i < 5; i++){
            twoled1.ledX();
            twoled1.printStatus();
            wait_ms(300);
        }
        
    }
}



All wikipages