Go Down

Topic: Codice per lettura sensori con delay() (Read 60 times) previous topic - next topic

pattagghiu

Ciao a tutti,
primo mio post qui (ok, secondo, mi sono presentato :)) e come prima cosa voglio farvi una domanda stupida, perchè sono sicuro un motivo ci sia, ma non riesco a capirlo.

parto da lontano. molti sensori hanno bisogno di tempi di attesa per funzionare correttamente.
Ad esempio, un tsl2561 (luce), ma come questi altri 1000.

prendo allora il codice scritto da gente che "ne sa". Quelli di adafruit
https://github.com/adafruit/TSL2561-Arduino-Library/blob/master/TSL2561.cpp

e che ci trovo?
ci trovo un delay() in attesa della lettura.

Domanda: ma è giusto?
mi pare strano quelli di adafruit usino un arduino solo per leggere un sensore, quindi qual è il motivo di scrivere il codice cosi?

vi faccio un altro esempio, bme680
quando legge la qualità del gas ha un certo tempo di attesa. allora cerco una libreria, e ne trovo una che pare anche scritta decentemente
https://github.com/SV-Zanshin/BME680/blob/master/src/Zanshin_BME680.cpp

e che ci trovo?
qui c'è un while che controlla la lettura di un registro. Immagino anche questo mi blocchi qualsiasi altra attività del mio loop()

Quindi ecco, mi piacerebbe mi aiutaste a capire il motivo di questo disegno..

grazie a tutti
ciao

Claudio_FF

#1
Jun 11, 2019, 05:57 am Last Edit: Jun 11, 2019, 07:24 am by Claudio_FF
....
ci trovo un delay() in attesa della lettura.
....
qui c'è un while che controlla la lettura di un registro. Immagino anche questo mi blocchi qualsiasi altra attività del mio loop()
Ipotizzo che il motivo sia la semplicità di utilizzo della libreria da parte dell'utente medio/principiante... Scrivere codice non bloccante richiede delle assunzioni sulla struttura del software che potrebbero non essere facilmente comprensibili, anche perché l'utente dovrebbe poi a sua volta scrivere codice non bloccante per permettere alla libreria di funzionare.
***** IF e SWITCH non sono cicli !!! *****
** Una domanda ben posta è già mezza risposta **
*** La corrente si misura in mA, la quantità di carica in mAh ***

Go Up