I remélem, hogy ez egy egyszerű kérés egy újonctól az Arduino és a programozás felé. Megértettem, hogy amint egy program belép egy void loop szakaszba, a végtelenségig köröz. Nemrégiben azonban láttam olyan vázlatokra példákat, ahol egy másik void $$$$$ szakasz követi az érvénytelen hurok lezárását (by}). Amikor ezt írom, egy példát vizsgálok egy 7 szegmenses kijelzővel kapcsolatban, ahol “void Num_Write (int)” követi az érvénytelen hurok bezárását. Ha a “hurok” szakasz éppen ezt teszi, amint azt már elhittem, hogyan érhető el egy következő szakasz?
Köszönöm, Rob
Hozzászólások
- Felhívásával. tutorialspoint.com/cplusplus/cpp_functions.htm
- Erre ' is vonatkozik Arduino hivatkozás: arduino.cc/en/Reference/FunctionDeclaration
- A tetejére: cplusplus.com/doc/tutorial/functions
Válasz
A void loop()
szakasz egy függvény, ugyanaz, mint a void setup()
egy függvény. Amikor elindítja az Arduino programozását, használjon egy másik funkciót, amelyet “nem láthat az IDE-ben, hívja meg a setup()
-t, majd hívja meg ismételten a loop()
<. / p>
Ez a másik látott funkció, azaz a void Num_Write(int n)
meghívható a setup()
vagy a loop()
és végrehajtják az utasításokat, mielőtt visszatérnek az őket meghívó függvényhez. Lehetséges, hogy a Num_Write()
más funkciókat is meghívhat, mielőtt visszaadná a vezérlőt a hívott függvénynek.
A void
típust a semmi ábrázolására használják (ez ennél bonyolultabb, de ehhez a magyarázati szinthez semmi sem fog tenni). adjon vissza például int
, char
, bool
típusokat. Tehát, ha lenne egy függvényünk így:
int theMeaningOfLife(void) { return 42; }
Ez egy olyan függvény, amely egy int
( umber), így hívhatnád így:
void setup() { int number = theMeaningOfLife(); }
Egy fogás van, a függvényt használat előtt meg kell adni, ez lehetővé teszi a fordító számára, hogy tudja, mire utal. Ennek legegyszerűbb módja, ha a függvényt a hívó függvény fölé írja. A második módszer az, hogy csak a függvény aláírását írjuk a függvény fölé, azaz:
int theMeaningOfLife(void); void setup() { int number = theMeaningOfLife(); }
A legjobb módszer (de Arduino-n nem mindig praktikus) ) az összes funkciódeklaráció egy fejlécfájlban (.h) és a kód egy .cpp fájlban van. (Nézzen meg egy könyvtárat, hogy mire gondolok).
Összegzés
Csak egy függvény van, amelyet többször is meghívnak, ez a loop
függvény. Az, hogy egy függvény érvénytelen, nem azt jelenti, hogy ismételten ciklusba megy.
Megjegyzések
- Ön ezt írta: „ a függvényt használat előtt meg kell adni ”. Valójában az Arduino IDE egy előfeldolgozási lépésben futtatja a kódot, amely ezt megteszi az Ön számára, vagyis nem kell magának tennie. Még mindig fontolóra venném, hogy ragaszkodom ehhez a szabályhoz, már csak azért is, mert ez az IDE-n kívül fordíthatóvá teszi a kódot, pl. egy Makefile alkalmazással.
- @EdgarBonet – Köszönöm, ezt soha nem tudtam. Azt hiszem, mégis el kellene felejtenem, különben ' elkezdem kipróbálni a munkahelyemen, és végül kihúzom a hajam, és megpróbálom kideríteni, hogy miért nyert [div id = “950fa26d85 “>
t összeállítani. 🙂