Arduino – Függvények

A függvényeket bizonyos műveletek végrehajtására használjuk. Használjunk funkciókat ha egy kódrészletet többször kell használni a programban, átláthatóbbá és tömörebbé teszi a kódot. A függvények használatával a kód olvashatóbb lesz.

A megírt funkciót könnyen átmásolhatjuk és használhatjuk egy másik programunkban, ezáltal hordozható vagy újrafelhasználható is a függvény. A funkciók használatával egyszerűbb a hibakeresés, és csökken a program módosításaiból eredő hibák esélye is.

Két alapvető funkció van egy arduino vázlatban, a setup () és a loop (). Ezek nélkül nem készíthetünk arduino kódot. Egyéb funkciókat ezen a két függvényen kívül kell deklarálni.

A függvény szintaxisa:

void myFunction(paraméter1, paraméter2) 
{
   // kódblokk
}

A myFunction a függvény neve. A zárójelben lévő paraméterek a funkciónak átadott értékek, vesszővel elválasztva több paramétert is megadhatunk. A paramétert nem kötelező megadni, előfordul, hogy egy függvény csak egy bizonyos dolgot hajt végre. A függvény kódblokkjában lévő kód határozza meg hogy a függvénynek mit kell tennie.

void myFunction() 
{
   Serial.println("Hello World");
}

A void adattipus a függvény neve előtt azt jelenti, hogy a függvénynek nincs visszatérési értéke. Az adattípust természetesen a visszatérési értéknek megfelelően kell megadni, pl ha a függvény számot ad vissza az adattípusa int lesz.

int myFunction(int param1, int param2) 
{
  int num3 = param1 + param2;
  return num3;
}

Függvényünket deklarálhatjuk a setup() és loop() funkciók előtt.

int myFunction(int param1, int param2) 
{
  int num3 = param1 + param2;
  return num3;
}
void setup()
{

}
void loop()
{

}

A függvényünket megírhatjuk a setup() és loop() szekciók után is, de felettük egy úgynevezett függvény prototípust létre kell hozni.

A függvény prototípus a funkció visszatérési érték adattípusából, a függvény nevéből, és a paraméter(ek) adattípusából (ha van ilyen) áll. A függvény prototípusát a sorvégi pontosvesszővel (;) le kell zárni.

int myFunction(int, int);

void setup()
{

}
void loop()
{

}
int myFunction(int param1, int param2) 
{
  int num3 = param1 + param2;
  return num3;
}

A függvények nem hajtódnak végre automatikusan a program futása közben, csak ha meghívjuk őket. Az alábbi példa bemutat egy függvényhívást.

void myFunction() 
{
   Serial.println("Hello World");
}
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  myFunction();
}

Egy függvény többször is meghívható, más paraméterekkel is.

int myFunction(int param1, int param2) 
{
  int num3 = param1 + param2;
  return num3;
}
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  int myNum = myFunction(10, 22);
  Serial.println(myNum);

  int myNum = myFunction(20, 32);
  Serial.println(myNum);
}

A következő részben megvizsgáljuk a megszakításokat.