Das ganze wiederholt sich viel zu oft unnötigerweise.
Statt viele Male
würde einmalCode:digitalWrite(p1, wert); digitalWrite(p2, wert); digitalWrite(p3, wert); digitalWrite(p4, wert);
reichen was man dann z.B. als SetBits(LOW, HIGH, HIGH, LOW); aufruft. Dann hat das Programm schon viele Zeilen verloren.Code:void SetBits(int v1, int v2, int v3, int v4) { digitalWrite(p1, v1); digitalWrite(p2, v2); digitalWrite(p3, v3); digitalWrite(p4, v4); }
So müsste man mehrmals da drüber gehen. Am Ende hätte das Programm vielleicht noch 10 % der jetzigen Länge. Dann hätte man schon viel für die Fehlersuche gewonnen.
- - - Aktualisiert - - -
Als Ergänzung, selbst wenn im obigen Falle p1 bis p4 Variablen sind, könnte man sowas machen
Code:struct MotorPin { int p1; int p2; int p3; int p4; }; const MotorPin pins[] = { {1, 2, 3, 4}, {5, 6, 7, 8} , /* mehr Pins */}; // nur Beispielwerte void SetBits(int motor, int v1, int v2, int v3, int v4) // Motornummer beginnt hier bei 0 { digitalWrite(pins[motor].p1, v1); digitalWrite(pins[motor].p2, v2); digitalWrite(pins[motor].p3, v3); digitalWrite(pins[motor].p4, v4); }






Zitieren


Lesezeichen