Loading...
Pages: [1] 2 3   Go Down
Author Topic: Come faccio a gestire tempi lunghi?  (Read 598 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 4
Posts: 574
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Full Member
***
Karma: 2
Posts: 192
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Brattain Member
*****
Karma: 219
Posts: 16447
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-sweat
Logged


Offline Offline
God Member
*****
Karma: 4
Posts: 574
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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... smiley-grin
« Last Edit: March 17, 2013, 05:00:17 pm by BaBBuino » Logged

Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16447
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tutte le mie lib sono da un po' anche su GitHub, lì sei sicuro che non c'è "monnezza"  smiley-sweat
https://github.com/leomil72
Logged


Offline Offline
God Member
*****
Karma: 4
Posts: 574
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

No, millis mi è antipatica perchè va in overflow.
Logged

Offline Offline
God Member
*****
Karma: 4
Posts: 574
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tutte le mie lib sono da un po' anche su GitHub, lì sei sicuro che non c'è "monnezza"  smiley-sweat
https://github.com/leomil72


Ma cosa usa? Sempre il millis? Non vorrei che dopo i soliti 47 giorni di continuamente acceso, mi va in crash...
Logged

Offline Offline
God Member
*****
Karma: 4
Posts: 574
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho scaricato la libreria, grazie Leo. Domani vedo se funzia...
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 161
Posts: 15669
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Brattain Member
*****
Karma: 219
Posts: 16447
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per dirla tutta, c'è il modo (anzi ce n'è più d'uno) per evitare i problemi di millissmiley-wink
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Per dirla tutta, c'è il modo (anzi ce n'è più d'uno) per evitare i problemi di millissmiley-wink

Avast mi dice che la pagina web contiene un cavallo di troia.
Logged


Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16447
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok. Oggi piallo il sito e metto Joomla, mi sono rotto il coccige....
Logged


Conegliano
Offline Offline
Newbie
*
Karma: 0
Posts: 37
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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.

Quote
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 Offline
Tesla Member
***
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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 Offline
Brattain Member
*****
Karma: 219
Posts: 16447
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se il controllo su millis() lo fai nella forma esposta nel mio articolo, ossia
MILLIS - TEMPO_PRECEDENTE > INTERVALLO

non hai problemi di overflow.
Logged


Pages: [1] 2 3   Go Up
Print
 
Jump to: