Mein erster OOP versuch


```cpp
/*
Programm	Einfache Timerklasse
Name	    Jörg ter Veen
Kontakt	  joerg.ter.veen@icloud.com
Datum	    13.03.2024
Version	  1.1.0.4

Danke an das Arduino-Forum mit unterstützung von:
  - noiasca
  - Kai-R
  - MicroBahner
  - combie
*/
  class TTimer {		

    private:
      unsigned long period;
      unsigned long startTime;
      bool activ = false;
      using action = void (*)();
      action func{nullptr};

  	public:
      void start(){                                       // Timer starten
        activ = true;
        startTime = millis();
      }

      void stop(){                                        // Timer Stoppen
        activ = false;
      }

      void setTOcallback(action val){                     // Funktion übergeben die aufgerufen werden soll
        func = val;
      }

      void setInterval(unsigned long val){                // Intervall der Timer
        period = val;
      }

      void update(){
        if ((activ)&&(func)){                             // Nur nach kompletter integration
          if  (millis() - startTime >= period) {
            startTime = millis();
            func();                                       // hier Function aufrufen
          }
        }
      }
  };

bool toggle;
TTimer myTimer;
const byte ledPin = 7;

void setup() {
  pinMode(ledPin, OUTPUT);
  myTimer.setInterval(1000);
  myTimer.setTOcallback(blinken);
  myTimer.start(); 
}

void loop() {
  myTimer.update();
}

void blinken(){
  toggle = !toggle;
  digitalWrite(ledPin, toggle);
}