void setup()
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
void setup()
Prosím,
vysvětlíte mi někdo jaký je rozdíl, když napíšu příkazy do části "setup()" nebo je napíši ještě před tuto část? Přijde mi, že je to stejné, vždy se příkazy provedou....
Zkoušel jsem hledat, odpověď jsem nenašel, vždy jen co je to "setup()" - to je jasné... ale když to napíši mimo to, tak to také dělá co má.... ??
Díky
vysvětlíte mi někdo jaký je rozdíl, když napíšu příkazy do části "setup()" nebo je napíši ještě před tuto část? Přijde mi, že je to stejné, vždy se příkazy provedou....
Zkoušel jsem hledat, odpověď jsem nenašel, vždy jen co je to "setup()" - to je jasné... ale když to napíši mimo to, tak to také dělá co má.... ??
Díky
Re: void setup()
To, že se to provede a zatím to funguje, neznamená že je to správně. Vnějšek funkcí setup a loop je určený výhradně k deklaraci ,definici a inicializaci proměnných a objektů, vnitřek funkce setup je pro kód který má proběhnout jednou a prioritně a loop pro opakovaný běh kódu. To že běží i kód napsaný mimo, můžeš chápat i jako chybu, která zatím nebyla odstraněna A až ji opraví, bude spousta různých programů mít problém s kompilací. Ale tak napsaného kódu asi není škoda.
Re: void setup()
Otazkou je, co mini temi "prikazy".
Muj tip je, ze ruzna prirazeni promennych, kde se nejdriv provedou ta "mimo" jako inicializace a pak ta "uvnitr", jako soucast behu funkce setup.
IMHO se tohle prelozi a probehne spravne
ale tohle neprojde prekladacem protoze tam jsou prikazy mimo funkci
Muj tip je, ze ruzna prirazeni promennych, kde se nejdriv provedou ta "mimo" jako inicializace a pak ta "uvnitr", jako soucast behu funkce setup.
IMHO se tohle prelozi a probehne spravne
Kód: Vybrat vše
int a=1;
int b;
int c;
void setup(){
b=2;
if (a==1)
{c=1; }
else
{c=2;}
}
Kód: Vybrat vše
int a=1;
int b;
int c;
b=2;
if (a==1)
{c=1; }
else
{c=2;}
void setup(){
}
Re: void setup()
Každá funkce má nějaký úkol. Setup se dá označit za start, nebo prvotní nastavení. Takže když budeš potřebovat třeba nastavit rychlost komunikace, nastavit funkci pinu, ale není tam potřeba, aby to jelo pořád dokola. Takže tam příjde dalo by se říci, že nastavení, ale pozor, opravdu jen nastavení. Setup je nastaven pro provedení jednou. Dokud nedojde k restartu. K proměnné, když dáš před setup proměnné, jde použít všude. No a když bude přímo v setup proměnné, tak jde provést jen tam. Loop, tam se opakuje vše dokola, když chceš tutu smyčku zpomalit, tak použiješ třeba delay. Takže loop se dá používat tam, kde potřebuješ načítat data, u kterých potřebuješ opakování.
Re: void setup()
Ano, díky, ale toto je jasné. Ptám se na část programu mimo setup() a mimo loop(), tedy něco jako v hlavičce programu, před volání setup() a loop() Co tam má být, musí být, nemá být či nesmí být. A to mi asi bylo odpovězeno výše.
Díky
Re: void setup()
To, na co jsi se ptal, je i přímo zakotveno v definici jazyka C/C++. "Jakýkoli příkaz nemůže být umístěn mimo funkci." Proto, když se píše program v klasickém prostředí, tak všechny příkazy začínají ve funkci main(). To je vlastně vstupní funkce, kterou spouští operační systém pro vykonání proramu a do ni se i pomocí parametrů přenášejí spouštěci parametry a vrací se chybové parametry. V arduino prostředí je to trochu jinak. Starší arduino překladače dovolovaly umístit kód mimo obě funkce a na netu se dá najít dost programů takto napsaných. Současná verze arduino IDE už to nedovolí (musel jsem si to vyzkoušet, protože mne ani nenapadlo tam cpát kód) jak už i psal někdo výše.
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 12 hostů