Meine Programme
IsA Vererbung
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; } }