Oliver Ainhirn
/
18_10_2018
Klassen
main.cpp
- Committer:
- corsa1600
- Date:
- 2019-02-04
- Revision:
- 0:8a6521c9d48e
File content as of revision 0:8a6521c9d48e:
#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; } }