Drehscheibe Modellbahn mit RF24

Hi

Warum versuchst Du's nicht einfach?
Mehr, als daß Dir der Compiler das XOR um die Ohren haut, kann nicht passieren.
Mein Compiler traut Sich Das aber scheinbar nicht:

const byte schritte_max = 48;   //Anzahl an möglichen Anschlußpunkten

byte von;                       //Ausgangsgleis
byte nach;                      //Zielgleis

void setup() {
  // put your setup code here, to run once:
}

void loop() {
  // put your main code here, to run repeatedly:
  von = random(schritte_max) + 1;   //von und bis 'auswürfeln'
  nach = random(schritte_max) + 1;

  Serial.print("Von ");       // Von 1
  Serial.print(von);
  Serial.print(" nach ");     // nach 12
  Serial.println(nach);

  byte schritte_a = abs(von - nach);
  Serial.print("Entfernung ohne 1-");
  Serial.print(schritte_max - 1);
  Serial.print(" Wechsel ");  //Entfernung ohne 1-47 Wechsel 11
  Serial.println(schritte_a);
  byte schritte_b = schritte_max - schritte_a;
  Serial.print("Entfernung mit 1-");
  Serial.print(schritte_max - 1);
  Serial.print(" Wechsel ");   //Entfernung mit 1-47 Wechsel 37
  Serial.println(schritte_b);
  //wenn schritte_a<schritte_b && von<nach, dann 'aufwärts' drehend ... 1->12
  //wenn schritte_a<schritte_b && von>nach, dann 'abwärts' drehend  ... 12->1
  //wenn schritte_a>schritte_b && von<nach, dann 'abwärts' drehend  ... 1->48
  //wenn schritte_a>schritte_b && von>nach, dann 'aufwärts' drehend  ... 48->1
  if (schritte_a) {
    if (schritte_a < schritte_b xor von < nach) { //jedes der Statements kann nur wahr oder falsch sein
      Serial.println("Starte Abwärts");   // wenn nur Eines wahr ist
    } else {
      Serial.println("Starte Aufwärts");  // wenn Keines oder Beide wahr sind
    }
  } else {
    Serial.println("identisches Gleis");
  }
  delay(1000);
}

Ungetestet - das 'xor' lässt sich recht einfach in der Zeile 35 entdecken.

Der Hintergedanke dazu ist, daß sich die Drehrichtung umkehren muß, wenn der Weg 'durch die Null' länger ist, oder (eigentlich exclusives oder) Start und Ziel die Positionen getauscht haben.

KA, ob's so wirklich klappt, sollte aber.

MfG