0
Offline
Faraday Member
Karma: 17
Posts: 3919
Arduino rocks
|
 |
« Reply #975 on: December 27, 2012, 06:29:42 pm » |
Leo mi sorge un dubbio, ma se questo semplice trucco che pablos sta gia' usando e che tu hai descritto sul blog, cioe' millis() - tempo_precedente > intervallo elimina il problema overflow di millis, a che serve la tua secTimer ?
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16474
Don't know what I do
|
 |
« Reply #976 on: December 28, 2012, 12:43:24 am » |
nel millis() non usi l'unsigned è sott'inteso da qualche parte?
Non ho capito questa domanda. Millis() è una funzione predefinita di Arduino che restituisce un unsigned long. Il suo valore è quindi un 32 bit senza segno. comunque io ho sempre usato questa unsigned long Millis_corrente = millis(); if(Millis_corrente - Millis_Precedente > intervallo) { Millis_Precedente = Millis_corrente; ... ... } che direi sia la stessa, ma ovviamente non ho mai taroccato i valori per vedere che succede, quindi così anche trovandomi vicino al punto 0 non mi salta l'opearzione? parola di lupetto  o devo provare  ciao E' lo stesso ma fai uso di una variabile tampone inutile, sprecando quindi 4 byte di SRAM per nulla  Se ottimizzi il controllo così: if(millis() - Millis_Precedente > intervallo) { Millis_Precedente = millis(); ... ... } ottieni l'identica cosa. EDIT: pablos, potresti rispondermi sul thread del leOS?
|
|
|
|
« Last Edit: December 28, 2012, 12:46:16 am by leo72 »
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16474
Don't know what I do
|
 |
« Reply #977 on: December 28, 2012, 12:49:02 am » |
Leo mi sorge un dubbio, ma se questo semplice trucco che pablos sta gia' usando e che tu hai descritto sul blog, cioe' millis() - tempo_precedente > intervallo elimina il problema overflow di millis, a che serve la tua secTimer ? Avevo scritto la secTimer diversi mesi prima di pubblicare una soluzione al problema di millis. A parte questo, la secTimer è un contasecondi non un contamillisecondi. Per cui puoi usarla per misurare intervalli in secondi in tutti i casi in cui serve gestire questa unità di misura.
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2446
|
 |
« Reply #978 on: December 28, 2012, 11:32:34 am » |
Millis() è una funzione predefinita di Arduino che restituisce un unsigned long. va bene se è così allora tolgo la variabile di appoggio unsigned .... grazie ciao EDIT: ho risposto al topic LEOS2
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16474
Don't know what I do
|
 |
« Reply #979 on: December 28, 2012, 12:35:08 pm » |
Millis() è una funzione predefinita di Arduino che restituisce un unsigned long. va bene se è così allora tolgo la variabile di appoggio unsigned .... grazie ciao EDIT: ho risposto al topic LEOS2 OK per entrambe.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3919
Arduino rocks
|
 |
« Reply #980 on: December 28, 2012, 02:17:17 pm » |
Scusa Leo, ma vista la grandezza della notizia, hai aperto un topic tipo "il problema millis non esiste ?"
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2446
|
 |
« Reply #981 on: December 28, 2012, 03:16:56 pm » |
Scusa Leo, ma vista la grandezza della notizia, hai aperto un topic tipo "il problema millis non esiste ?"
Prima l'overflow fa schiantare il micro, poi, no quando arriva a termine riparte da 0, poi si riparte da 0 senza schiantare niente, ma i risultati ottenuti saranno falsi, ora mi dici che il problema millis non è mai esistito ahahahahhaha sta storia è peggio dei maya. anche qui il tutorial mostra la stessa formula l'abbiamo sempre avuta sotto il naso http://arduino.cc/en/Tutorial/BlinkWithoutDelayEDIT: Testato .... ti posso dare una testata? 
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16474
Don't know what I do
|
 |
« Reply #982 on: December 28, 2012, 04:40:14 pm » |
Che il contatore vada in overflow e che riparta da zero è indubbio. Dopo questo, entra in gioco il "come" viene gestito il controllo. E' tutto lì. Se il controllo viene fatto in un certo modo, il problema non affligge il codice. Di come fosse fatto nel BlinkWithoutDelay sinceramente non mi ero mai preoccupato 
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3919
Arduino rocks
|
 |
« Reply #983 on: December 28, 2012, 07:35:22 pm » |
pablos accomodati pure, ma ritengo non sia giusto riceverla. credo siamo sulla stessa barca, anche io come te, ho avuto il terrore dell'overflow del millis, ora scopro che il problema non c'e', basta usare bene la formula. Ti assicuro che in questi termini non si era mai espresso nessuno, infiniti commenti ci sono sul forum sul terrore millis, e lo stesso Leo ci ha scritto fiumi prima di arrivare alla soluzione definitiva. Sottolineare che il problema non esiste credo sia cosa buona e giusta per il mondo intero  e Leo deve ricevere un premio nobel 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16474
Don't know what I do
|
 |
« Reply #984 on: December 29, 2012, 12:30:53 am » |
pablos accomodati pure, ma ritengo non sia giusto riceverla. credo siamo sulla stessa barca, anche io come te, ho avuto il terrore dell'overflow del millis, ora scopro che il problema non c'e', basta usare bene la formula. Ti assicuro che in questi termini non si era mai espresso nessuno, infiniti commenti ci sono sul forum sul terrore millis, e lo stesso Leo ci ha scritto fiumi prima di arrivare alla soluzione definitiva. Sottolineare che il problema non esiste credo sia cosa buona e giusta per il mondo intero  e Leo deve ricevere un premio nobel  
|
|
|
|
|
Logged
|
|
|
|
|
Genova
Offline
Edison Member
Karma: 14
Posts: 2446
|
 |
« Reply #985 on: December 29, 2012, 03:47:29 am » |
accomodati pure, ma ritengo non sia giusto riceverla. Ueee guarda che scherzavo 
|
|
|
|
|
Logged
|
Meglio imparare dalle cose inutili piuttosto che non imparare niente. [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3919
Arduino rocks
|
 |
« Reply #986 on: December 29, 2012, 04:52:40 am » |
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Tesla Member
Karma: 82
Posts: 8233
:(){:|:&};:
|
 |
« Reply #987 on: December 29, 2012, 06:52:38 am » |
uhh nessuna citazione? 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16474
Don't know what I do
|
 |
« Reply #988 on: December 29, 2012, 07:10:20 am » |
uhh nessuna citazione?  Vero vero... La seconda soluzione me l'hai suggerita tu. Anzi, per dirla tutta, mi ha fatto presente tu via PM che si poteva evitare il casting perché usando l'ordine delle operazioni ed il secondo metodo di confronto, che poi è risultato essere quello del BlinkWithoutDelay, il problema non si poneva.
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Faraday Member
Karma: 17
Posts: 3919
Arduino rocks
|
 |
« Reply #989 on: December 29, 2012, 08:01:38 am » |
Il premio nobel non si puo' dividere in due, quindi uno ciascuno. Leo pero' ora devi mettere ufficialmente la citazione sul tuo Blog, e' il minimo 
|
|
|
|
|
Logged
|
|
|
|
|
|