Salve Ragazzi ,
in un programmino che ho trovato in rete ho visto che usano il while in questo modo
while(readPin(clockDown,200))
dove clockDown è un pulsante per la taraura di un orologio, ma la mia domanda era cosa serve il 200 che c'è affianco??
Grazie
readPin(clockDown,200)
È una funzione che sicuramente sta definita da quache parte dello sketch.
Se é questo sketch: http://lusorobotica.com/index.php?topic=7561.0
//Lê pino usando limiar
int readPin(int pin, int threshold)
{
if (digitalRead(pin))
{
unsigned long tt = millis();
while ((digitalRead(pin) && (millis() - tt) <= threshold));
if (digitalRead(pin))
return 1;
else
return 0;
}
else
return 0;
}
È una sorta di debouce dove il tipo in pratica usa millis() bloccando il sketch. Poteva usare comunque delay().
Ciao Uwe
praticamente è l'antirimbalzo per il pulsante?
christianbortotto:
praticamente è l'antirimbalzo per il pulsante?
Sí, ma come detto scritto male in un modo troppo complicato. Anche il tempo usato (200mS) é troppo lungo. bastano 5 a 10 mS.
Ciao Uwe
Sempre ammesso che sia preso da quel programma...
Altrimenti potrebbe essere qualsiasi cosa, anche una lettura da un analogico e quel numero potrebbe essere una soglia.
Ok, saro' ripetitivo, ma ... "sprecare" un paio di resistenze ed un condensatore, e risolvere alla radice i problemi di rimbalzo, proprio mai ? ...
Etemenanki:
Ok, saro' ripetitivo, ma ... "sprecare" un paio di resistenze ed un condensatore, e risolvere alla radice i problemi di rimbalzo, proprio mai ? ...![]()
Le righe di software si possono copiaincollare. Le saldature le devi fare tutte le volte
Ci vorrebbe un bel megatopic sull'antirimbalzo, in cui metti anche lo schema con queste R e questo C in modo da poter indirizzare tutte le richieste.