Eigene Methode für Flankenerkennung

Erweiterte Moeglichkeit der FlankenErkennung nach combie's Entwurf.

//class design created by combie
class FlankenErkennung
{
  private:
    bool state;
    int16_t zaehler;

  public:
    void begin()
    {
      state = false;
      zaehler = 0;
    }
    void aktZaehler(const int16_t ivar)
    {
      if (ivar == 0) zaehler = 0; //bei 0 = RESET
      else zaehler += ivar;       //+/- moeglich
    }
    bool doTrigger(const bool trigger)
    {
      bool result = trigger && !state;
      state = trigger;
      return result;
    }
    int16_t getZaehler()
    {
      return zaehler;
    }
};

FlankenErkennung FE_1; //Objekt anlegen (FE_1)
//FlankenErkennung FE_2...;

const uint8_t pin_2 = 2; //fuer Flanken Auswertung

void setup()
{
  pinMode(pin_2, INPUT);
  FE_1.begin(); //Variablen initialisieren
}

void loop()
{
  if (FE_1.doTrigger(digitalRead(pin_2))) FE_1.aktZaehler(1);
  int16_t FE_1_zaehler = FE_1.getZaehler();
  //...
}

Gruß
Grillgemuese :slight_smile: