Go Down

Topic: Ciclo infinito (Read 3450 times) previous topic - next topic

Puso

Non sò se ve nè siete accorti ma, l'autore del topic è fuggito perchè siete malati mentalmente e lo avete spaventato.

Comunque sia questo è quello che tentavo di dire, prima della partenza dai il SETUP (le basi su cui cominciare), poi il VOID INVENTATO con una variabile per congelarlo come dice Silente, poi al momento giusto lo metto nel LOOP e nel caso modifico la variabile(di congelamento) oppure richiamo un' altra variabile, il tutto con degli IF ( o simili) e (millis)....per non bloccare il programma.

Io al momento sto seguendo questo percorso, faccio bene????? (chiedo consiglio).

SukkoPera

#46
May 21, 2018, 09:31 pm Last Edit: May 21, 2018, 09:33 pm by SukkoPera
Non so, io continuo a non capire bene il senso di tutti questi discorsi.

Posto che in Arduino un ciclo infinito "utile" c'è già (il loop()), e quindi va sfruttato quello (e com'è fatto, è fatto, tocca farselo andar bene), l'unica utilità di un altro ciclo infinito che vedo è quella di BLOCCARE il programma in caso di evento inatteso (tipo devo leggere dei tag RFID e non c'è il lettore). In questo caso, perché preoccuparsi dell'efficienza? Intanto non c'è niente da fare, solo rimanere fermi lì... Che ci metta un nanosecondo o due ore a fare il loop, cosa cambia?

E comunque io resto convinto che solo un compilatore idiota potrebbe generare codice diverso tra
Code: [Select]
for(;;)
  ;

e
Code: [Select]
while(true)
  ;

o anche
Code: [Select]
antani: goto antani;
"Code is read much more often than it is written, so plan accordingly. Design for readability."

Guida rapida a ESP8266: https://goo.gl/kzh62E

torn24

Su arduino e in generare su un microcontrollore, i discorsi fatti sono sensati. Si ha bisogno di un unico ciclo infinito per la ripetizione del codice, e può servire un ciclo infinito che blocchi l'esecuzione, per cui che sia più efficiente o meno non ha nessuna importanza.

Mentre nella programmazione generale con più thread di esecuzione, potremmo avere la necessità di eseguire all'infinito "fino al termine del programma" una parte del codice, allora si considera anche la velocità di esecuzione. Esempio in un videogioco, ci sara un thread con un ciclo infinito che "leggerà" la pressione dei tasti e o i comandi di un joystick, per cui possono esistere più cicli infiniti quanti sono i thread.

docdoc

Esempio in un videogioco, ci sara un thread con un ciclo infinito che "leggerà" la pressione dei tasti e o i comandi di un joystick, per cui possono esistere più cicli infiniti quanti sono i thread.
Esatto. E qui su Arduino si chiama funzione "loop()"... :D
Alex "docdoc"
- "Qualsiasi cosa, prima di rompersi, funzionava"

Go Up