
Zitat von
Dirk
Was du ja wohl machen willst ist eine Art "Menüstruktur". Du drückst eine Taste und ein Programmteil startet. Dann beendet man das wieder durch einen Tastendruck und kommt zurück ins Auswahlmenü.
Der Aufruf der main() und auch noch ohne Abbruch der do-while Struktur ist keine gute Idee!
genau. und wenn es mit "brutaler kraft" sein muss - ich hatte keine idee und dachte eher an das gute alte "goto" aus basic-zeiten. Würde das ein eingesetztes break abmildern, oder ist die ganze idee für die katz?

Zitat von
Dirk
Das braucht etwas mehr Aufwand, als per brute-force in die main zurückzuspringen.
Du kannst aber z.B. im RP6Base_SELFTEST.c sehen, wie man ein solches Menü bauen kann.
meinst Du das hier?
Code:
test = receiveBuffer[0] - 48;
if(receiveBuffer[0] == 's')
{
speed_control();
}
else if(receiveBuffer[0] == 'd')
{
testMoveDistance();
}
else if(receiveBuffer[0] == 'c')
{
testEncoderDutyCycle();
}
else if(test > 8)
{
writeString_P("You need to enter a single number from 0 to 8, s, d or c!");
continue;
}
else
{
switch(test)
{
case 0:
testPowerOn();
testLEDs();
testVoltageSensor();
testBumpers();
testLightSensors();
testACS();
testRC5();
testMotorsAndEncoders();
break;
case 1: testPowerOn(); break;
case 2: testLEDs(); break;
case 3: testVoltageSensor(); break;
case 4: testBumpers(); break;
case 5: testLightSensors(); break;
case 6: testACS(); break;
case 7: testRC5(); break;
case 8: testMotorsAndEncoders(); break;
}
}
ich erkenne hier eher eine einstufige abfragesituation und innerhalb der einzelnen cases oder if-abfragen läuft hier keine while-schleife...
Lesezeichen