Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Unübersichtliches Programm Kategorie: Programmierung (von ACU, http://www.roboterbastler.de - 30.10.2004 13:15)
Ich nutze:
C-Control II Unit, CC2-Application-Board, OSOPT_V2
Hallo!
Ich folgendes Problem:
Ich habe ein Programm für meine CC2 geschrieben. Leider ist es aufgrund von vielen
 If Abfragen und Klammern (wie ihr unten selbst sehen könnt) sehr unübersichtlich geworden.
Das Programm macht nicht, was es soll und durch das unübersichtliche Programm
wird meine Fehlersuche erschwert. Wie kann ich das Programm besser machen?


Das Programm ist für meinen Roboter. Ein Thread, der im Hintergrund läuft, berechnet die
Entfernung und übergibt sie in der Variable  Entfernunglinks und Entfernungrechts.
Falls beide Sensoren nur noch Wand sehen (der Roboter ist in einer Sackgasse), soll der
Roboter zurückfahren sich in die günstigste Richtung drehen, die beiden besten Wertepaare
ermitteln und anschlie�end an diese Position zurückkehren und weiterfahren.
in cm. Der Timer ist dafür da die Zeit festzulegen, die der Robote nach wertepaaren sucht.



loop //Beginn der Entfernungsabfrage
{

 if Entfernungrechts <= 13 and Entfernunglinks <= 13 //wenn beide Sensoren etwas sehen
  {
   ports.set(8,0);
   ports.set(9,0);
   plm.beep(20);
   sleep 300;
   Weitermachen =1;//Platz für Zuweisungen
   ports.set(10,1);
   ports.set(11,1);
   sleep 1000;
   ports.set(10,0);
   ports.set(11,0);
   plm.beep(-1);
  if Entfernungrechts >= Entfernunglinks
    {
     plm.beep(4);
     ports.set(10,1);
     ports.set(9,1);
     run Timer;
     while Weitermachen
      {
       if Entfernunglinks>=lopt and Entfernungrechts>=ropt
        {
         lopt=Entfernunglinks;
         ropt=Entfernungrechts;
        }

        if Entfernunglinks <=13 //Richtung umkehren im Notfall
         {
          ports.set(10,0);
          ports.set(9,0);
          sleep 300;
          ports.set(11,1);
          ports.set(8,1);
         }
        if Entfernungrechts <=13 //Richtung umkehren im Notfall
         {
          ports.set(11,0);
          ports.set(8,0);
          sleep 300;
          ports.set(10,1);
          ports.set(9,1);
         }
        }
       plm.beep(-1);
       Weitermachen=1;
       sleep 9999999;
      }

   if Entfernungrechts < Entfernunglinks
    {
     plm.beep(33);
     ports.set(11,1);
     ports.set(8,1);
     while Weitermachen
     {

     }
     plm.beep(-1);
    }



}}}}


Ich weiÃ? es klingt relativ kompliziert, aber eigentlich ist die Handlung ganz einfach.


MfG ACU


Meine Seite: http://www.roboterbastler.de


    Antwort schreiben


Antworten:

Re: Unübersichtliches Programm (von André H. - 31.10.2004 12:28)
Re: Unübersichtliches Programm (von reneforster - 30.10.2004 17:15)
    Re: Unübersichtliches Programm (von ACU - 30.10.2004 19:58)
        Re: Unübersichtliches Programm (von ACU - 8.11.2004 16:52)
            Re: Unübersichtliches Programm (von krassos - 8.11.2004 17:29)
                Re: Unübersichtliches Programm (von ACU - 8.11.2004 18:38)
                    Re: Unübersichtliches Programm (von Thomas - 9.11.2004 9:50)
                       Re: Unübersichtliches Programm (von ACU - 9.11.2004 17:48)
                          Re: Unübersichtliches Programm (von Thomas - 10.11.2004 10:45)
                             Re: Unübersichtliches Programm (von ACU - 10.11.2004 18:30)
                                Re: Unübersichtliches Programm (von Thomas - 10.11.2004 21:25)
                    Re: Unübersichtliches Programm (von André H. - 8.11.2004 23:22)