Das ganze wiederholt sich viel zu oft unnötigerweise.
Statt viele Male
Code:
digitalWrite(p1, wert);
digitalWrite(p2, wert);
digitalWrite(p3, wert);
digitalWrite(p4, wert);
würde einmal
Code:
void SetBits(int v1, int v2, int v3, int v4)
{
digitalWrite(p1, v1);
digitalWrite(p2, v2);
digitalWrite(p3, v3);
digitalWrite(p4, v4);
}
reichen was man dann z.B. als SetBits(LOW, HIGH, HIGH, LOW); aufruft. Dann hat das Programm schon viele Zeilen verloren.
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);
}
Lesezeichen