Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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;
}
}