Programmieren von LegoMindstorms-Robotern mit NQC
Programmieren von LegoMindstorms-Robotern mit NQC
Programmieren von LegoMindstorms-Robotern mit NQC
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
14.<strong>NQC</strong>- Befehle im Überblick<br />
<strong>Programmieren</strong> <strong>von</strong> LEGO-MindStorms- <strong>Robotern</strong> <strong>mit</strong> <strong>NQC</strong><br />
Hier siehst du eine Liste aller Statements, Bedingungen, Befehle und Ausdrücke des RCX. Die meisten wurden in den<br />
Kapiteln 1 bis 12 behandelt. Daher werden sie hier nur kurz beschrieben.<br />
Da das alles etwas schwierig zu verstehen ist, habe ich dir jeweils ein paar Beispiele für den RCX erstellt. Schreibe das<br />
Programm ab, übertrage es auf den RCX und laß’ es dann laufen. Übertrage anschließend den Datalog des RCX <strong>mit</strong> Hilfe<br />
des RCX-Command Centers auf deinen Computer und vergleiche die Ergebnisse. Verändere dann das Programm, rechne<br />
das Ergebnis aus, übertrage das Programm und überprüfe das Ergebnis des Datalog <strong>mit</strong> dem <strong>von</strong> dir berechneten. Wenn du<br />
das ein paarmal richtig gemacht hast, dann hast du die Funktion verstanden.<br />
Für weitere Informationen schaue bitte im <strong>NQC</strong>_Guide.doc nach, das allerdings in enschlischer Sprache verfaßt ist.<br />
Statements<br />
Statements sind Schlüsselworte, die ein Programm anweisen etwas zu auszuführen.<br />
Statement<br />
Beschreibung<br />
while (Bedingung) Anweisung Führe Anweisung nie oder solange aus, wie die Bedingung zutrifft<br />
do Anweisung while (Bedingung) Führe Anweisung einmal oder solange aus, wie die Bedingung zutrifft<br />
until (Bedingung) Anweisung Führe Anweisung nie oder solange aus, bis die Bedingung zutrifft<br />
break<br />
Unterbreche die Ausführung der while/do/until Anweisung<br />
continue<br />
Springe zum nächsten Durchlauf der while/do/until Anweisung<br />
repeat (Wert) Anweisung<br />
Wiederhole die Anweisung entsprechend dem Wert in Klammern<br />
if (Bedingung) Anweisung 1<br />
Führe Anweisung 1 aus, wenn die Bedingung zutrifft<br />
if (Bedingung) Anweisung 1 else<br />
Anweisung 2<br />
Führe Anweisung 1 aus, wenn die Bedingung zutrifft, andernfalls führe<br />
Anweisung 2 aus<br />
start task_name<br />
Starte die genannte Task<br />
stop task_name<br />
Stoppe die genannte Task<br />
Funktion(Argumente)<br />
Rufe die Funktion auf und übergebe dabei die Argumente (Zahlen)<br />
Variable = Formel<br />
Berechne Formel und weise den Wert Variable zu<br />
Variable += Formel<br />
Berechne Formel und addiere den Wert zu Variable hinzu<br />
Variable -= Formel<br />
Berechne Formel und subtrahiere den Wert <strong>von</strong> Variable<br />
Variable *= Formel<br />
Berechne Formel, multipliziere den Wert <strong>mit</strong> Var und weise ihn Var zu<br />
Var /= Formel<br />
Berechne Formel, dividiere Var durch den Wert und weise ihn Var zu<br />
Variable |= Formel<br />
Berechne Formel und erhöhe die Variable um ein Bit, wenn das Bitmuster<br />
der Variablen <strong>von</strong> rechts <strong>mit</strong> dem der Formel übereinstimmt 1)<br />
Variable &= Formel<br />
Berechne Formel und erhöhe die Variable um ein Bit, wenn das Bitmuster<br />
der Variablen <strong>von</strong> links <strong>mit</strong> dem der Formel übereinstimmt 1)<br />
return<br />
Kehre zur aufrufenden Stelle zurück (Dient dazu Unterprogramme vorzeitig<br />
zu verlassen, wenn z.B. eine if-Bedingung erfüllt ist)<br />
expression Einfach nur ein Ausdruck, wie x=5; oder nur ein ;<br />
1)<br />
kann ich leider nicht besser erklären. Vielleicht hilft dir das Beispiel auf der nächsten Seite weiter oder es findet sich ein<br />
Mathematiker, der mir da helfen kann.<br />
Beispielprogramm: (hier das Programm aus Kapitel 4)<br />
int aa;<br />
// Definition der Variablen aa<br />
int bb, cc;<br />
// gleichzeitige Definition der Variablen bb und cc<br />
task main()<br />
{<br />
CreateDatalog (10); //reserviere einen Speicherbereich <strong>von</strong> 10 Plätzen im Datalog<br />
aa = 10;<br />
// weise der Variablen aa den Wert 10 zu<br />
bb = 20 * 5; // weise bb den Wert 20 mal 5 = 100 zu<br />
cc = bb; // sezte cc gleich bb, cc wird also ebenfalls 100<br />
cc /= aa; // berechne cc / aa und weise das Ergenis cc zu, cc = 100/10 = 10<br />
cc -= 1; // ziehe <strong>von</strong> cc 1 ab und weise das Ergebnis cc zu, cc wird also 9<br />
aa = 10 * (cc + 3); // berechne 10 * (cc + 3), aa wird also 10 * (9 + 3) = 120<br />
AddToDatalog (aa); //füge aa dem Datalog hinzu<br />
AddToDatalog (bb); //füge bb dem Datalog hinzu<br />
AddToDatalog (cc); //füge cc dem Datalog hinzu<br />
}<br />
- 39 -