Arexx RP6 V2 Build your own robot kit RP6 V2 Manuale Utente

Codici prodotto
RP6 V2
Pagina di 141
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:
1  
2  
3  
4
5
6
7
8
9    
uint8_t
 i = 
0
;
while
(< 
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 
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 
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 
genau so aufgebaut werden wie bei den if Bedingungen. 
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:
1  
2  
3  
4
5
6
7    
uint8_t
 i;  
// wird hier NICHT initialisiert, sondern im Schleifenkopf!
for
(= 
0
; i < 
10
; i++)
{
writeString(
"i="
);
writeInteger(i, DEC);
writeChar(
'\n'
);
}
Diese Schleife erzeugt exakt dieselbe Ausgabe wie die obige while Schleife. Hier ist 
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-
stand zu versetzen, oder einfach Operationen solange auszuführen wie der Mikrocon-
troller läuft. 
- 72 -