If else

Progetti Arduino
Rispondi
Avatar utente
Maxvarese
Messaggi: 1958
Iscritto il: mar 9 apr 2019, 23:53

If else

Messaggio da Maxvarese »

Utilizzando la funzione if senza else se nessuna condizione impostata si verifica il flusso del programma si blocca ?

Affinché il programma prosegua senza fare nulla è corretto scrivere: else{;}
Avatar utente
Maxvarese
Messaggi: 1958
Iscritto il: mar 9 apr 2019, 23:53

Re: If else

Messaggio da Maxvarese »

Se si ha un elenco di condizioni if prima di un solo else e una di queste si verifica vengono verificate anche le altre ?

Sto cercando la spiegazione di un bug..
Avatar utente
Pier Aisa
Amministratore
Messaggi: 2537
Iscritto il: ven 16 mar 2018, 9:43
Località: Bologna
Contatta:

Re: If else

Messaggio da Pier Aisa »

Ogni else si accompagna al suo if, quindi se hai n condizioni else è applicabile all'ultimo in ordine sequenziale di esecuzione del programma.
se hai tanti if e nessuno si verifica non entri dentro quelle condizioni ma il programma deve continuare.
se siamo in ambito Arduino, attento alla RAM e alla sua gestione perchè magari si blocca per altri motivi
Sono malefiche le stringhe
la gestione della memoria dinamica su Arduino è la principale causa edi blocchi
Poi siccome Arduino non ha un debugger standard l'unico modo è utilizzare delle serial.print per capire che accade, magari allocando le stringhe in flash con uso di progmem per non erodere la RAM
Avatar utente
Maxvarese
Messaggi: 1958
Iscritto il: mar 9 apr 2019, 23:53

Re: If else

Messaggio da Maxvarese »

Grazie Pier..
Stavo proprio cercando la spiegazione di un bug che affligge il mio data logger.
Non conosco ancora bene il mondo arduino, ho imparato giusto ciò che mi è servito a scrivere il codice..
Appena potrò lo pubblicherò...
Avatar utente
Pier Aisa
Amministratore
Messaggi: 2537
Iscritto il: ven 16 mar 2018, 9:43
Località: Bologna
Contatta:

Re: If else

Messaggio da Pier Aisa »

Grazie Max. Con Arduino spesso quando si piata tutto senza ragione è un problema di RAM. La gestione della momeria infatti non è protetta. Ti consiglio di lavorare con tanta memoria libera, lo vedi in compilazione quanto ne hai usato, non scendere mai sotto il 20% libero. Nel caso migra verso MEGA2560
TheOrdinarySuperhero
Messaggi: 1032
Iscritto il: mar 2 ott 2018, 15:16

Re: If else

Messaggio da TheOrdinarySuperhero »

A Arduino manca disperatemente la https://it.wikipedia.org/wiki/Garbage_collection praticamente é brago a ingozzarzi di dati ma non riesce a scaricarli da solo e ha bisogno di essere purgato a mano
Ho avuto un problema simile con un dataloger e la soluzione facile é stata quella di integrare un reset di arduino ogni tot di tempo https://www.theengineeringprojects.com/ ... cally.html
Rispondi