Meine Programme

IsA Vererbung

Table of Contents

  1. IsA-Vererbung 18.10.2018

IsA-Vererbung 18.10.2018

https://os.mbed.com/users/fpucher/code/HIM0Board/wiki/IsA https://os.mbed.com/users/fpucher/code/HIM0Board/wiki/Aufgaben-Klassen-mit-Interrupt

IsA Vererbung

#include "mbed.h"
 
 
 //-------------------Inherited Switch Event Class from InterruptIn----------------------
 
class SwEventInh : public InterruptIn                               // Verknüpft mir auf meine Klasse eine andere
{
        
        volatile int16_t _pressed;                                  // volatile => damit nur auf einer CPU gearbeitet wird
        void _risingISR();                                          // ruft die Funktion auf
 
    public:
        SwEventInh(PinName pin) : InterruptIn(pin)                  // create the InterruptIn on the pin specified to SwEvent
    {         
        rise(callback(this, &SwEventInh::_risingISR));              // attach ISR-function of this SwEvent instance 
        _pressed=0; 
            
            
    }
    
        int checkFlag();                                            // must in do-condition (while(true)-loop) continuously interrogated
};
// ---------------- Switch Event Class Methodes --------------------------

int SwEventInh :: checkFlag()                                       // :: Scope Operator => verweist
{
    if( _pressed )                                                  // true/False Abfrage
    {
        _pressed = 0; 
        return 1;
    }
    return 0;
}
 
void SwEventInh::_risingISR() 
{            
    if( read() )
        _pressed = 1;
}




SwEventInh sw1(p14);

DigitalOut myled(LED1);
 
int main() 
{
    
    myled=1;
    wait(1);
    myled=0;
    
    printf("Hello");
    while (1)
    {
        sw1.read();
        if(sw1.checkFlag())
        myled= ! myled;
        }
    
    
}

All wikipages