Offline
God Member
Karma: 4
Posts: 574
|
 |
« on: March 17, 2013, 03:37:14 pm » |
Come faccio a far partire un allarme solo dopo 2 minuti dall'innesco (HIGH su un Input), senza usare un delay da 200 milioni di millisecondi?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 2
Posts: 192
|
 |
« Reply #1 on: March 17, 2013, 03:39:37 pm » |
funzione millis();. Lavori on un if.Quando la funzione millis supera il tempo da te impostato allora fa partire l'allarme. Ti riporto il link di tutte le informazioni sulla funzione millis(); http://arduino.cc/en/Reference/millis
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16447
Don't know what I do
|
 |
« Reply #2 on: March 17, 2013, 04:46:30 pm » |
Volevo consigliarti la mia libreria secTimer, che misura il tempo in secondi invece che in ms come fa la millis ma non vorrei che poi trovassi dei bug anche in quella 
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 574
|
 |
« Reply #3 on: March 17, 2013, 04:56:46 pm » |
Azz.. tira fuori subito il Link (sempre che non mi fai prendere un altro virus, questa volta della Guardia di finanza!) In questo schetch non ho interrupt, Timer, Wire, ne GLCD. Un semplice LCD con LiquidCrystal, potrei non trovare bug... 
|
|
|
|
« Last Edit: March 17, 2013, 05:00:17 pm by BaBBuino »
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16447
Don't know what I do
|
 |
« Reply #4 on: March 17, 2013, 04:58:43 pm » |
Tutte le mie lib sono da un po' anche su GitHub, lì sei sicuro che non c'è "monnezza" https://github.com/leomil72
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 574
|
 |
« Reply #5 on: March 17, 2013, 04:59:26 pm » |
funzione millis();. Lavori on un if.Quando la funzione millis supera il tempo da te impostato allora fa partire l'allarme. Ti riporto il link di tutte le informazioni sulla funzione millis(); http://arduino.cc/en/Reference/millisNo, millis mi è antipatica perchè va in overflow.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 574
|
 |
« Reply #6 on: March 17, 2013, 05:01:31 pm » |
Ma cosa usa? Sempre il millis? Non vorrei che dopo i soliti 47 giorni di continuamente acceso, mi va in crash...
|
|
|
|
|
Logged
|
|
|
|
|
Offline
God Member
Karma: 4
Posts: 574
|
 |
« Reply #7 on: March 17, 2013, 05:34:54 pm » |
Ho scaricato la libreria, grazie Leo. Domani vedo se funzia...
|
|
|
|
|
Logged
|
|
|
|
|
BZ (I)
Offline
Brattain Member
Karma: 161
Posts: 15669
+39 349 2158303
|
 |
« Reply #8 on: March 17, 2013, 06:01:30 pm » |
No, millis mi è antipatica perchè va in overflow.
Con un controllo oportuno non sbagli i tempi neanche durante un overflow. Le cose diventano problematiche solo quando un tempo é telmente lungo che ci capitano 2 o piú overflow. Ciao Uwe
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16447
Don't know what I do
|
 |
« Reply #9 on: March 18, 2013, 01:11:12 am » |
Per dirla tutta, c'è il modo (anzi ce n'è più d'uno) per evitare i problemi di millis. 
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #10 on: March 18, 2013, 02:18:52 am » |
Avast mi dice che la pagina web contiene un cavallo di troia.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16447
Don't know what I do
|
 |
« Reply #11 on: March 18, 2013, 02:43:06 am » |
Ok. Oggi piallo il sito e metto Joomla, mi sono rotto il coccige....
|
|
|
|
|
Logged
|
|
|
|
|
Conegliano
Offline
Newbie
Karma: 0
Posts: 37
|
 |
« Reply #12 on: March 18, 2013, 03:00:47 am » |
Con un controllo oportuno non sbagli i tempi neanche durante un overflow. Le cose diventano problematiche solo quando un tempo é telmente lungo che ci capitano 2 o piú overflow. Per dirla tutta, c'è il modo (anzi ce n'è più d'uno) per evitare i problemi di millis. smiley-wink Ho letto l'articolo di Leo: evita anche i problemi accennati da Uwe? Io vorrei che il mio progetto funzioni per degli anni.... PS: Nella soluzione 1, la riga appena sotto l'immagine recita "La differenza (convertita in una variabile di tipo signed) fra millis() e overflow"... credo dovrebbe essere fra millis() e intervallo.
|
|
|
|
|
Logged
|
|
|
|
|
Rome (Italy)
Offline
Tesla Member
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #13 on: March 18, 2013, 03:12:58 am » |
No, millis mi è antipatica perchè va in overflow.
Il fatto che va in overflow dopo 47 e rotti giorni non significa che il tuo programma smette di funzionare, in tutti i casi puoi resettare a tuo piacere la millis(), evitando di fatto che vada in overflow, non appena hai terminato i vari cicli di delay che ti servono.
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16447
Don't know what I do
|
 |
« Reply #14 on: March 18, 2013, 04:22:03 am » |
Se il controllo su millis() lo fai nella forma esposta nel mio articolo, ossia MILLIS - TEMPO_PRECEDENTE > INTERVALLO
non hai problemi di overflow.
|
|
|
|
|
Logged
|
|
|
|
|
|