User manual

Először mindig a program gombot nyomjuk meg, és csak ezután kapcsoljuk be az ASURO-t, mivel egyébként nincs
lehetőség szoftver letöltésére!
8.5. Első saját program
Mielőtt a C-programozás rövid ismertetésébe kezdenénk, először egy kis saját program. Ehhez a Programmers Notepaddal
(Linux: vagy egy más szerkesztővel) a test.c fájlt a C:\Eigene Dateien\ASURO_src\FirstTry listából:
#include “asuro.h”
int main(void) {
Init();
while(1);
return 0;
}
Az első kísérletekhez szükséges, hogy a programnak a test.c fájlneve legyen, mert a szállított példa make fájl (egy fájl,
amelyik leírja, hogyan kell egy programot lefordítani) erre van tervezve. Amellett a legegyszerűbb egy már meglévő példából a
programot tovább írni. Később aztán készíthetünk saját programokat is és írhatunk saját make fájlokat
A letöltött programot a következőképp kell módosítani (Figyelem: ügyelni a pontos írásmódra, a kis- és nagybetűk írására is
ügyelni):
#include “asuro.h”
int main(void) {
Init();
StatusLED(PIROS);
while(1);
return 0;
}
Ezután újra a Tools menüben -> make-et válasszuk ki (Linux alatt: egy Shellbe az “~/ASURO/” listában “make-et” billentyűzzük
be, vagy az Editornak megfelelően konfiguráljunk és várjuk meg a compilálást, amikor már több új üzenet nem jelenik meg az
ablakban).
Ellenőrizzük, hogy alul az ablakban a Process Exit Code: 0, ezáltal a programot a Compiler megértette és lefordította.
Ha egy más kód áll ott, akkor a hibajelzés alapján a hibát meg kell keresni.
Legtöbbször használ, a hibát abban a sorban keresni, ahol - az állapotjelző ablak szerint - ez első hiba előfordult. A
szövegszerkesztőben baloldalt egészen lent annak a sornak a száma áIl, ahol a kurzor éppen áll.
Ha a compilálás hibátlanul működött, az új programot be lehet tölteni a flash memóriába. Ehhez az infra transceivert kell
csatlakoztatni, elindítani a Flash-Toolt, kiválasztani a test.hex fájlt és a helyes COM interfészt, az ASURO-nak rá kell látnia az
infra transceiverre, programot elindítani, ASURO-t bekapcsolni és várakozni a program átvitelére.
Ha az átvitel - a státusz ablak alapján - kifogástalanul megtörtént, ki kell kapcsolni az ASURO-t, majd ismét bekapcsolni, egy
másodpercig feszülten figyelni és (*tus!*) az állapotjelző dióda pirosan világít.
Ahhoz, hogy elkerüljük, hogy még több programsort kelljen leírni programozási ismeretek nélkül, ajánlatos a további kísérletek
előtt a következő fejezetet elolvasni.
9. C nyelv az ASURO-hoz
Ez a fejezet a C programozási nyelvvel foglalkozik. Az olvasó itt a C programnyelv ASURO-hoz szükséges részeivel
ismerkedik meg. Tehát semmi esetre sem jelenti a C nyelvbe történő teljes bevezetést. Erre jobb könyvek léteznek
1.
Azért a C lett nyelvnek választva, mert ez a nyelv igen széles és szinte mindegyik processzorhoz legalább egy C-compiler
létezik. Az ASURO-hoz a Gnu-C-Compiler alkalmazás van, mivel ez egy ingyenes (freeware) program és ennek ellenére jól
optimált kód az ATmega8-hoz, az ASURO processzorához.
Aki már tud C-ben programozni, egyszerűen olvasson tovább a 9.2 fejezettől. Ennek az olvasócsoportnak a továbbiak
abszolút érdektelenek. Tényleg csak a leginkább szükséges nyelvi elemeket írjuk le, hogy a lehető legegyszerűbb módon
ismertessük, mi szükséges feltétlenül az ASURO működtetéséhez.
És nem kell aggódni, ha a zárójeleire és a pontosvesszőire gondolunk, a C egyáltalán nem olyan nehéz. És végülis ez nem
óvodásoknak készült játékrobot!
9.1. A C programozás alapjai
9.1.1. Általános
Alapvetően egy C programot a processzor utasításról utasításra, fentről lefelé hajtja végre2. Egyszerre két utasítás
végrehajtása nem létezik, legalábbis az ASURO processzoránál nem. Ennek megfelelően kell gondolkodni: Egyik feladat a
másik után.
A példákban szereplő sorok elején lévő üres karakterek nem feltétlenül szükségesek. A beljebb kezdés módszere azonban
nagy segítség lehet, ha arról van szó, hogy hosszabb programokat is áttekinthetővé tegyünk.
A C-ben minden utasítás “;”-vel zárul. Így tudja a compiler is megkülönböztetni egymásoktól az utasításokat.
Ha több utasítást kell összefogni, ahogy ezt függvényekhez, hurkokhoz vagy feltételekhez (erről később) szükséges, ezt az
utasítás tömböt kapcsos zárójellel (“{”, “}”) fogjuk össze.
Példa:
#include “asuro.h”
int main(void) {
/* Minden, ami itt van, eg tömbhöz tartozik */
}
1
Például: Brian W. Kerninghan, Dennis M. Ritchie: “Programmieren in C”, Hanser Verlag, ISBN 3-446-15497-3
2
Azokat a módszereket, amik az utasítások folyamatába beavatkoznak, folyamatvezérlésnek hívjuk, és a fejezetben később
ismertetjük.
Ha a kódból néhány sort kommentálni szeretnénk, a komment tömb “/*”-vel kezdődik és “*/ ”-vel fejeződik be. Egyetlen sor
kommentálásához “//“ elegendő az adott sor elé3. A kommentelés arra szolgál, hogy a compiler ne vegye figyelembe ezeket a
szövegrészeket.
Így anélkül láthatjuk el kommentárokkal a programot, hogy a program fordításakor ebből problémák fakadnának.
2002.01.09.. Változók és adattípusok
A változók "adattárolók". Egy program folyamán ezeket írni, olvasni vagy változtatni lehet. Ahhoz, hogy egy változót használni
tudjunk, először deklarálni kell azt. Ekkor meg kell határozni, hogy a változók melyik típusához tartozik és adott esetben milyen
kezdő értékkel rendelkezzen. A típus meghatározza, hogy milyen típusú számokat lehet a változóban tárolni (egész számokat,
pozitív egész számokat, decimális számokat...).
A változó neve egy betűvel kezdődik (“_” szintén betűnek számít) számokat is tartalmazhat, viszont nem tartalmazhat
különleges karaktereket. A nagy- és kisbetűk megkülönböztetésre kerülnek; így az x és X különböző változók.
Hagyományosan kis betűket használunk változónak. A következő megnevezések már foglaltak és nem lehet őket változó
névként használni:
auto default fl oat long sizeof union
break do for register static unsigned
case double goto return struct void
char else if short switch volatile
const enum int signed typedef while
continue extern
A következő adattípusok érdekesek az ASURO programozásához:
Típus
Értéktartomány:
Megjegyzés
char
-
128 ... +127
egy bájtos érték; a karakterkészlet egy karaktere veheti fel
unsigned char
0 ... 255
előjel nélküli karakter
int
-
32768 ..
+32767
két bájtos érték
unsigned int
0 ... 65535
előjel nélküli int
float
egyszerű pontos változó érték
3 “//” egy kommentárjel a C++ standard alapján. Mivel az itt alkalmazott compiler valójában egy C++ compiler is, ez működik,
de más compilereknél hibajelzéshez vezethet.
9. C nyelv az ASURO-hoz
A meghatározás vagy a main() funkción "kívül" történik, mint globális változó, (azaz a változó az egész program számára
elérhető), vagy a main() funkcióban, (ekkor csak arra a programkódra érvényes, ami a main() funkcióban van) vagy egy saját
függvényen belül (ekkor ez csak itt érvényes).
Mit ér a legszebb változó, ha nem tudjuk, hogy tudunk bele vagy belőle értéket nyerni.
Az adat szimplán hozzárendeléssel:
a=17; // a értéke most 17
vagy akár számítással:
a=17+23; // a ekkor 40