- LiFePO4 Speicher Test         
Ergebnis 1 bis 4 von 4

Thema: Frage zu while(true) schleifen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2008
    Ort
    Allgäu
    Alter
    37
    Beiträge
    220

    Frage zu while(true) schleifen

    hallo, hab ne frage zu der while(true) schleifen.... was ist der unterschied zwischen folgenden 3 fällen:

    fall1:

    while(true)
    {....
    move(100,FWD,DIST_MM(300),0);
    ....}



    fall2:

    while(true)
    {....
    move(100,FWD,DIST_MM(300),true);
    ....}



    fall 3:

    while(true)
    {....
    move(100,FWD,DIST_MM(300),blocking);
    ...}


    dass ich jetzt den befehl move(.....) genommen hab soll nur in beispiel sein.... ich will einfach nur wissen was grundsätzlich der unterschied zwischen dem 0, true und blocking in den klammern bewirkt....
    gruß

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    Hallo proevofreak,

    den Fall 3 gibt es so nicht.

    Zu den Fällen 1 und 2:
    In der RP6-Anleitung wird das auf den Seiten 100 bis 102 gut erklärt.

    Du kannst im move-Befehl am Ende den "blocking"-Parameter auf true (=1) oder auf false (=0) setzen. Dabei ist es egal, ob du z.B. false oder 0 einsetzt.
    Identisch ist also:
    move(100,FWD,DIST_MM(300),0);
    ... und ...
    move(100,FWD,DIST_MM(300),false);

    Identisch ist auch:
    move(100,FWD,DIST_MM(300),1);
    ... und ...
    move(100,FWD,DIST_MM(300),true);

    Ich würde immer true/false nehmen, weil man dann beim Lesen des Progs sofort erkennt, ob der Parameter wahr = true oder unwahr = false ist.

    Gruß Dirk

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    26.01.2008
    Ort
    Allgäu
    Alter
    37
    Beiträge
    220
    danke... is ja wirklich schlecht zu finden in d anleitung... hab unter schleifen gesucht.... also so hab ich des jetzt verstanden:

    wenn man...
    move(....,....,true)
    while()
    {
    ....}
    nimmt, geht das programm erst zur schleife über wenn die gesamte strecke abgefahren wurde, wenn man antstatt true false nehmen würde würde es gleich zur schleife übergehen. liege ich mit diesen annahmen richtig? gruß

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von SlyD
    Registriert seit
    27.11.2003
    Ort
    Paderborn
    Alter
    39
    Beiträge
    1.516
    hab unter schleifen gesucht....
    Die funktionsweise der "move" Funktion hat damit ja nicht wirklich was zu tun. Schleifen sind ein allgemeines C Konstrukt - move eine spezielle Funktion aus der RP6 Library ...

    "BLOCKING" ist übrigens schlicht ein #define (=Textersatz) und steigert die Lesbarkeit des Programmcodes, da man sofort sieht ob die Funktion im blockierenden Modus verwendet wird oder nicht.

    MfG,
    SlyD

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

12V Akku bauen