tanulságok Arduino

Ismét ez a minimális információkat. Leírás mutatók, osztályok, string változókat, stb Meg kell adni a későbbi órákon. Ha valami nem érthető, ne aggódj. A jövőben tanulságok lesz sok példát és magyarázatot.
Arduino program szerkezetét.
Arduino program szerkezete egyszerű, és a minimális kiviteli alakban két részből áll setup () és a loop ().
// kód végre egyszer, amikor a program elindul
// fő kódvégrehajtáskor egy ciklusban
beállítás () funkció végrehajtása egyszer bekapcsoláskor vagy alaphelyzetbe a vezérlőt. Általában akkor jelentkeznek, akkor a kezdeti telepítés változók, regisztrálja magát. A funkció jelen kell lennie a programban, akkor is, ha semmi.
Befejezése után a setup (), vezérlő továbblép a hurok () függvény. Ez egy végtelen ciklusban végrehajtja az utasításokat a testében (kapcsos zárójelek között). Valójában ezeket a parancsokat, és minden vezérlő algoritmikus műveletet.
C. A kezdeti szabály szintaxisát
; pontosvessző kifejezések tartalmazhat tetszőleges számú szóköz, sortörés. Terminator kifejezés szimbóluma „pontosvessző”.
<> zárójelek határozzák meg a készülék funkcióit vagy kifejezéseket. Például a setup () és a loop ().
A változó a sejt memória található, mely adatait tárolja. A program változók tartani közbenső számítási adatokat. A számításokhoz lehet használni az adatok különböző formátumú, különböző bitmélységet, így a változók az alábbi nyelvi C.
Az adattípusok alapján választják ki a kívánt pontosságot a számítások, adatformátum, stb Nem szükséges, például egy számláló méri 100, válassza ki a típus hosszú. Működni fog, de a művelet elvégzésére több adattárolási és programok több időt igényel.
Meghatározza az adatok típusát, majd a változó nevét.
Minden változókat kell nyilvánítani, mielőtt azokat használják.
Egy változó lehet nyilvánítani minden része a programnak, de ez attól függ, milyen blokkok programok is használhatják. Ie A változók körét.
- A deklarált változók a program elején, hogy egy függvény void setup (), tekintik a globális és bárhonnan elérhetők a programban.
- Helyi deklarált változók belül funkciók vagy egységek, mint a ciklus, és csak a hirdetési egységek használhatók. Számos változót azonos névvel, de különböző területekre.
int mód; // változó áll rendelkezésre az összes funkcióhoz
void setup () // üres dobozt, a kezdeti beállításokra nincs szükség
>
hosszú szám; // számláló változó csak az loop () függvény
A (int i = 0; i <10;) // переменная i доступна только внутри цикла
<
i ++;
>
>
int x = 0; // kijelentik x változó kezdeti értéke 0
char d = 'a'; //, hogy egy változót d kezdeti értéke egyenlő a kód az „a” szimbólum
Amikor aritmetikai műveletek különböző adattípusok történik egy automatikus átalakítása adattípusok. De ez mindig jobb, hogy explicit konverzió.
int x; // int változó
char y; // char változó
int z; // int változó
z = x + (int) y; // y kifejezetten alakítjuk egy int
Parancsaival program irányítását.
IF utasítás ellenőrzi a feltételt zárójelben, és végrehajtja a következő kifejezést, vagy blokk zárójelek között, ha a feltétel igaz.
ha (x == 5) // ha x = 5, akkor Z = 0 végzik
z = 0;
ha (x> 5) // ha x> 5, akkor az egység z = 0, y = 8;
If ... else lehet választani a két lehetőség.
ha (x> 5) // ha x> 5, akkor az egység z = 0, y = 8;
<
z = 0;
y = 8;
>
mást // Egyébként a mondat végrehajtása
<
z = 0;
y = 0;
>
ELSE IF - lehetővé teszi, hogy több választás
ha (x> 5) // ha x> 5, akkor az egység z = 0, y = 8;
<
z = 0;
y = 8;
>
else if (x> 20) // ha x> 20, a blokk végrehajtása
<
>
mást // Egyébként a mondat végrehajtása
<
z = 0;
y = 0;
>
Kapcsolószekrény - több választás. Ez összehasonlítja egy változó (ebben a példában, x) több állandók (az 5. példa és 10. ábra), és végre olyan egység, amelyben a változó egyenlő állandó.
esetében 5.
// kód végrehajtása, ha X = 5
break;
10 esetben.
// kód végrehajtása, ha x = 10
break;
alapértelmezett.
// kódvégrehajtáskor ha nem esnek egybe sem az előző érték
break;
>
Ciklusát. A konstrukció lehetővé teszi, hogy megszervezzék ciklusban egy meghatározott számú iteráció. A szintaxis a következőképpen néz ki:
A (cselekvés ciklus előtt;
feltétele annak, hogy továbbra is a ciklus;
fellépés végén minden egyes iteráció)
Példa ciklus 100 iteráció.
for (i = 0; i <100; i++ ) // начальное значение 0, конечное 99, шаг 1
WHILE hurok. Ez lehetővé teszi a kezelő szervezni ciklus tervezése:
while (kifejezés)
<
// ciklus törzsének kódját
>
A hurok végrehajtani, amíg a kifejezés a zárójelben igaz. 10. példa ciklus iteráció.
DO MÍG - ciklus feltétele a kimeneten.
csinál
<
// ciklus törzsének kódját
> Míg (expresszió);
A hurok lefusson, amíg a kifejezés igaz.
Break - az üzemeltető ki a hurkot. Arra használják, hogy szakítsa meg a hurkok, míg tegye darabig.
X = 0;
míg a (X <10 )
<
ha (Z> 20) break; // ha Z> 20, akkor lépjen ki a hurok
// ciklus törzsének kódját
x ++;
>
GOTO - feltétel nélküli ugrást nyilatkozatot.
goto metka1; // átmenet metka1
..................
metka1:
FOLYTATÁS - Átmenni az üzemeltetők, amíg a végén a hurok.
X = 0;
míg a (X <10 )
<
// ciklus törzsének kódját
ha (Z> 20) továbbra is; // ha Z> 20, majd térjen vissza a kezdete a ciklus testet
// ciklus törzsének kódját
x ++;
>
Egy tömb memória, ahol több változó tárolja egymás után.
Kijelenti tömb így.
int korosztály [10]; // tömb 10 típusú változók int
úszó tömege [100]; // tömb 100 típusú változók float
Rátérve a tömb változót az alábbiak szerint:
X = korosztály [5]; // x hozzárendelünk egy értéket, az 5 a tömbben.
korosztály [9] = 32; // tömb elem 9 van beállítva, hogy 32
A számozás a tömb elemeinek mindig nulla.
Funkció lehetővé teszi, hogy azonos műveleteket hajtják végre a különböző adatokat. A függvény:
- A név, amellyel ez okozza;
- érvek - az adatokat, hogy a függvény kiszámítására;
- Az adatok típusa által visszaadott funkciót.
Leírja a felhasználó által definiált függvény függvény setup () és a loop ().
void setup () <
// kód végre egyszer, amikor a program elindul
>
void loop () <
// fő kódvégrehajtáskor egy ciklusban
>
Példa funkció kiszámítja a négyzetösszeg két érv.
int sumQwadr (int x, int y)
<
visszatérési (x * x + y * y);
>
Függvényhívás a következő:
d = 2; b = 3;
Z = sumQwadr (d, b); // z a négyzetének összege a változók d és b
A funkciók beépített, egyedi, dugaszolható.
Nagyon rövid, de ezek az adatok elegendőnek kell lennie ahhoz, hogy kezdeni írásban programok C Arduino rendszerek.
Az utolsó dolog, amit szeretnék, hogy fedezze a lecke, hiszen dolgozzon ki egy programot a C. Azt hiszem, ha elolvassa a leckét az első alkalom, ki kell hagynia ezt a részt, és jöjjön vissza később, mikor fog hajtani.
Ajánlások a design programok C.
A fő cél a külső design a program célja, hogy javítsa az olvashatóság a program számának csökkentése alaki hibák. Ezért ahhoz, hogy e cél elérése érdekében könnyen sérti minden olyan ajánlást.
Nevek képviselik adattípusok írandó nagybetűk. Az első betű a név legyen tőke (nagybetűs).
Változó nevek írandó vegyes esetben az első levél sürgős (kisbetű).
Az állandók kell nagybetű. Mint egy elválasztó aláhúzás.
Módszerek és funkciók kell hívni igék rögzíteni a nagybetűk, az első betű kisbetű.
Másrészt az alaki követelmények a következő osztályba, ha szükséges.
A következő leckében, írunk az első program, megtanulják, hogyan kell olvasni az adatokat a digitális portok és kezelni betegségüket.
Edward hello! Hogy őszinte legyek - nagyon meglepte a tanulságokat. Amennyiben nem több, mint én még nem találkoztam egy érthető és informatív tanulságok - nagyon köszönöm! Van egy kérdés -, hogy void setup () függvény elég egyszer elején a mikrokontroller. Miután a funkció teljesülése mellett -, hogy mi történik a deklarált változók a függvényen belül, és már nincs szükség? Mentesül, ha a memória zanimaemaemaya őket? Vagy, hogy szükség van minden olyan intézkedést megtesz, akár saját?
Üdvözlünk!
Köszönöm a kedves szavakat. A változók a beállítási vannak kitéve a szokásos szabály változó alkalmazási körét. Ha ők deklarált ezt a funkciót, akkor egy helyi változót. Amikor a funkció változók elpusztult, a memória felszabadul.
Bit utochnit.Pust:
int i1;
int I2 = 10;
setup ()
int I3 = 20;
>
Assembly fog kinézni?:
először a cella (i1) menti az alapértelmezett értéket, akkor a cella (i2), és elküldi 10 csak az utolsó küldött a cella (i3) 20?