Arexx RP6 V2 Build your own robot kit RP6 V2 Manuale Utente
Codici prodotto
RP6 V2
RP6 ROBOT SYSTEM - 4. Programmierung des RP6
4.4.7. Schleifen
Schleifen werden immer dann gebraucht, wenn bestimmte Operationen mehrmals
wiederholt werden müssen.
Dazu direkt ein kleines Beispiel:
Schleifen werden immer dann gebraucht, wenn bestimmte Operationen mehrmals
wiederholt werden müssen.
Dazu direkt ein kleines Beispiel:
1
2
3
3
4
5
5
6
7
7
8
9
9
uint8_t
i =
0
;
while
(i <
10
)
// solange i kleiner als 10 ist...
{
// ... wiederhole folgenden Programmcode:
writeString(
"i="
);
// "i=" ausgeben,
writeInteger(i, DEC);
// den dezimalen (engl. "DECimal") Zahlenwert
// von i und ...
writeChar(
'\n'
);
// ... einen Zeilenumbruch ausgeben.
i++;
// i inkrementieren.
}
Hier handelt es sich um eine „while“ Schleife die der Reihe nach „i=0\n“, „i=1\n“,
„i=2\n“, ... „i=9\n“ ausgibt. Der Block nach dem sog. Schleifenkopf, also dem
„while(i < 10)“ wird solange wiederholt, wie die Bedingung wahr ist. In diesem Fall ist
„while(i < 10)“ wird solange wiederholt, wie die Bedingung wahr ist. In diesem Fall ist
die Bedingung „i ist kleiner als 10“. Auf Deutsch würde das obige also soviel wie „wie-
derhole den folgenden Block, solange i kleiner als 10 ist“ heissen. Da i hier zunächst 0
derhole den folgenden Block, solange i kleiner als 10 ist“ heissen. Da i hier zunächst 0
ist und bei jedem Schleifendurchlauf um 1 erhöht wird, läuft die Schleife insgesamt 10
mal durch und gibt die Zahlen von 0 bis 9 aus. Die Bedingung im Schleifenkopf kann
mal durch und gibt die Zahlen von 0 bis 9 aus. Die Bedingung im Schleifenkopf kann
genau so aufgebaut werden wie bei den if Bedingungen.
Neben der while Schleife gibt es noch die „for“ Schleife. Die funktioniert ganz ähnlich,
Neben der while Schleife gibt es noch die „for“ Schleife. Die funktioniert ganz ähnlich,
nur kann man hier noch etwas mehr im Schleifenkopf unterbringen.
Dazu wieder ein Beispiel:
Dazu wieder ein Beispiel:
1
2
2
3
4
4
5
6
6
7
uint8_t
i;
// wird hier NICHT initialisiert, sondern im Schleifenkopf!
for
(i =
0
; i <
10
; i++)
{
writeString(
"i="
);
writeInteger(i, DEC);
writeChar(
writeChar(
'\n'
);
}
Diese Schleife erzeugt exakt dieselbe Ausgabe wie die obige while Schleife. Hier ist
nur noch einiges mehr im Schleifenkopf untergebracht.
nur noch einiges mehr im Schleifenkopf untergebracht.
Der grundsätzliche Aufbau ist folgender:
for ( <Laufvariable initialisieren> ; <Abbruchbedingung> ; <Laufvariable verändern> )
{
{
<Anweisungsblock>
}
Für Mikrocontroller braucht man oft Endlosschleifen, also Schleifen die „unendlich“ oft
wiederholt werden. Fast jedes Mikrocontrollerprogramm hat eine Endlosschleife – sei
es um das Programm nachdem es abgearbeitet worden ist in einen definierten Endzu-
es um das Programm nachdem es abgearbeitet worden ist in einen definierten Endzu-
stand zu versetzen, oder einfach Operationen solange auszuführen wie der Mikrocon-
troller läuft.
troller läuft.
- 72 -