Auf jeden Fall sieht man schon mal, dass die goto Konstruktion sowas in der Art darstellen soll
Code:
void Justierung() {
static uint8_t motor = 1;
switch(motor) {
case 1:
if (JustPin == HIGH) {
// ...
}
// ...
motor++;
// ...
break;
case 2:
// Ähnlich für 2. Motor
case 3:
case 4:
case 5:
case 6:
default:
// irgendwas tun, wenn alle Motoren fertig
break;
}
Dabei wird immer noch viel Code dupliziert. Wahrscheinlich könnte man das, was in einem case-Block steht in eine oder mehrere Funktionen packen, die man dann aus jeden Block mit anderen Parametern aufruft.
Was mir beim Durchsehen aufgefallen ist
Code:
if (JustPin == HIGH)
wie wird JustPin geändert ?
Außerdem scheint da ja ein Timer zugange zu sein. Wahrscheinlich wird da was öfter oder in anderer Reihenfolge aufgerufen, als erwartet.
Lesezeichen