User manual
b=a+3; // b ekkor 43
b=b*2; // b ekkor 86
És most egész programban:
#include “asuro.h”
int main(void) {
int i; // i -32768 ... 32767 közötti számokat vehet fel
char zeichen; // zeichen ASCII betűket vagy számokat -128 ... 127 között
// vehet fel
i=3;
zeichen=17+i; // zeichen ekkor 20
i=i/2; // Osztás kettővel, mindig kerekítődik, ezutánb i = 1 !Division durch 2, es wird immer abgerundet i ist demnach 1!
return 0;
}
Van még egy pár praktikus rövidítés. Az
i=i+1;
helyett írhatjuk:
i++;
És az
i=i-1;
megfelelője:
i--;
9.1.3. Compiler parancsok
Biztosan megzavarta már az #include “asuro.h”. Az #include parancs nem más, mint olyan szöveg, ami a programban
megadott fájlban található és a programfordításkor ezt is le kell fordítani. A szóban forgó esetben néhány olyan rutin érhető el,
amik a robot működéséhez szükségesek.
Egy további fontos parancs az úgynevezett szöveghelyettesítés (és még egy van, amelyiket ennek a műnek a keretében
feszegetni kellene). Ennek a formája
#defi ne NAME szöveghelyettesítes
és túlnyomórészt állandók meghatározására alkalmazzák.
Ha a kódban a NAME szimbólum előfordul, az automatikusan a szöveghelyettesítéssel helyettesítődik be. A NAME formátuma
a #defi ne-nél ugyanaz mint a változó neveknél. A C programozásban az érvénesül, hogy a #defi ne-nél a NAME-hez csak
nagy betűket alkalmazunk.
Példa:
#include “asuro.h”
#defi ne STARTWERT 33
int main(void) {
int i;
i=STARTWERT; // i ekkor 33
return 0;
}
A compiler parancsok mögött egyébként nincs pontosvessző!
9.1.4. Feltételek
Gyakran szükséges, hogy a parancsok csak bizonyos feltételek megléte esetén hajtódjanak végre. Ehhez ellenőrző
struktúrákra van szükség. A legegyszerűbb, amivel döntéseket lehet formázni, az “if-else” utasítás.
A felépítése a következő:
if (feltétel)
Utasításblokk 1
else
Utasításblokk 2
A feltétel igazságtartalma vizsgálódik. Ha igaz (azaz nem egyenlő 0-val), akkor az Utasításblokk 1 teljesül, egyébként az
opcionálisan megadott Utasításblokk 2.
Ha egy döntésnél több alternatíva létezik, akkor több “else if” utasítás használható.
if (Feltétel 1)
Utasításblokk 1
else if (Feltétel 2)
Utasításblokk 2
else if (Feltétel 3)
Utasításblokk 3
else if (Feltétel 4)
Utasításblokk 4
else
Utasításblokk 5
A következő feltételek lehetségesek
:
Operátor
Jelentése
==
logikai összehasonlítás,
egyenlő
!=
logikai összehasonlítás,
nem egyenlő
<
logikai összehasonlítás,
kisebb
>
logikai összehasonlítás,
nagyobb
<=
logikai összehasonlítás,
kisebb vagy egyenlő
>=
logikai összehasonlítás,
nagyobb vagy egyenlő
Példa:
#include “asuro.h”
int main(void) {
Init()
while(1) {
if (PollSwitch()>0) {StatusLED (RED);}
else {StatusLED (GREEN);}
}
}
Ha egy ütköző gombot megnyomunk, akkor a státusz LED piros, egyébként zöld. A többi alkalmazott elemet később
ismertetjük.
A C-ben az “1” az igaz és a “0” a hamis. A feltétel
if (0) {StatusLED(RED);}
tehát oda vezet, hogy a StatusLED (RED) soha nem teljesül.
9.1.5. Hurkok
A hurkok (ciklusok) arra szolgálnak, hogy a parancsok többször végrehajtódjanak.
A “while” hurokban egy feltétel kerül kiértékelésre. Ha a feltétel igaz, az utasításblokk végrehajtódik és a feltétel újra
vizsgálódik mindaddig, amíg hamis nem lesz. Ezután a program az utasításblokk után folytatódik.
while( feltétel)
Utasításblokk
Példa:
#include “asuro.h”
int main(void) {
Init()
MotorDir(FWD,FWD); // Mindkét motor előre
MotorSpeed(120,120); // Mindkét motor kb. félerővel előre
StatusLED(GREEN); // A státusz LED zöldre váltása
while (PollSwitch()==0) { // Amíg nem történik ütköző gomb nyomás...
SerWrite(“Alles OK!\n”,10); // ... Jó érzés terjesztése
}
MotorSpeed(0,0); // Ütközés! Rögtön megállni!
StatusLED(RED); // Státusz LED pirosra váltása
while(1) {
SerWrite(“Aua!\n”,5); // és sírás!
}
}
A “for (expr1, epr2, expr3)” utasítás ekvivalens a következővel:
expr1;