Beispiel:
PortBit // Parameter (Bitnummer)
OffTime // Parameter (in millis)
OnTime // Parameter (in millis)
InitialState // Parameter (On/Off)
*Callback // Parameter (ggf. aufzurufender Funktionszeiger, wenn mehr als der Port getoggelt werden soll)
State //Puffer (aktuell On/Off)
Start //Puffer (letzter Flankenwechsel-millis)
So etwas kannst Du Dir als Strukturtyp definieren und für jeden Ausgang instanziieren. Die Parameter definiert (setzt) man beim Applikationsstart einmalig. Die Puffervariablen werden im loop-Durchlauf gebraucht.
Anstelle der einzelnen Infos steckt man dann einfach einen Zeiger auf die Strukturinstanz in die Ausg(…)-Funktion.
In C++ geht's komfortabler mit Klassen (wobei ich nicht glaube, dass Du die Objektorientierung schneller verstehst als Strukturen).
Lesezeichen