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

Re: Sprungmarke in C2 Kategorie: Programmierung (von André H. - 26.09.2004 21:59)
Als Antwort auf Re: Sprungmarke in C2 von ACU - 26.09.2004 20:16
Ich nutze:
C-Control II Unit, C164CI-ControllerBoard, CC2-Application-Board, CC2-StarterBoard, CC2-ReglerBoard, OSOPT V3.0
Hallo ACU,

> > > Der Standardbefehl:
> > > start://für die Marke
> > > goto start;//zum anspringen
> > >
> > > wird vom Compiler als Fehler angezeigt.

Das ist klar.

C2 ist eine C-Programmiersprache.
In C gibt es im allgemeinen keinerlei Sprungbefehle.
Dafür gibt es z.B. Funktionen und Schleifen.

Es ist zwar VM-technisch möglich, zu speziellen stellen zu springen,
jedoch benötigt man hierfür genauere Kenntnisse der VM bzw. sollte sich damit
stärker beschäftigen.
mit VM_BRANCH kann man gezielt eine Anzahl an Words vor oder zurückspringen.

  ...
 inline vmcodes.VM_BRANCH;
 inline 6;
 y=x+2; // 4 VM-Codes, 6 Words
 ...

Hier wird die Zeile y=x+2 "übersprungen".

Aber, wie gesagt, kommt man i.d.R. ohne explizite Sprungbefehle
in C-Programmiersprachen aus.

> Ich möchte, dass mein Roboter bevor er losfährt kontrolliert, ob genug Platz vor ihm ist.
> Wenn nicht, soll er auf dem Display ausgeben " Bitte an eine andere Stelle setzen".
> Das mu� man mit einer Taste bestätigen. Anschlie�end soll der Roboter wieder
> (und das ist das Problem) abfragen, ob der Weg frei ist, denn es könnte sein, dass der
> Anwender einfach nur den Knopf gedrückt hat, oder trotz verücken nicht genug Platz ist.
>
> Die Abfragen und Ausgaben sind alle kein Problem (habe ich alles fertig).
> Ich möchte aber nicht zig Mal die selbe schleife hintereinander machen, da dass
> alles andere als sauber Programmiert wäre.

Ich sehe hier keinerlei grund für ein Springen.
Du brauchst eigentlich nur folgendes Konstrukt:

 while <kein_Platz>
 {
  lcdext.print(<Text_kein_Platz>);
  wait <Taste_gedrückt>;
  //wait not <Taste_gedrückt>; //evtl. warten bis Taste wieder losgelassen wurde ...
  lcdext.clear();
 }


MfG André H.



Antworten bitte nur ins Forum!
Fragen per EMail auf Forum-Postings werden nicht beantwortet!

Das macht meine Heizung gerade


    Antwort schreiben


Antworten:

Re: Sprungmarke in C2 (von ACU - 27.09.2004 13:45)
    Re: Sprungmarke in C2 (von ACU - 27.09.2004 19:21)
        Re: Sprungmarke in C2 (von André H. - 29.09.2004 9:48)