Pages: 1 ... 64 65 [66] 67 68 ... 72   Go Down
Author Topic: swRTC  (Read 80222 times)
0 Members and 1 Guest are viewing this topic.
Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.

Quote
comunque io ho sempre usato questa

Code:
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 smiley smiley o devo provare  smiley-grin

ciao



E' lo stesso ma fai uso di una variabile tampone inutile, sprecando quindi 4 byte di SRAM per nulla  smiley-wink
Se ottimizzi il controllo così:
Code:
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


Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Leo mi sorge un dubbio, ma se questo semplice trucco che pablos sta gia' usando e che tu hai descritto sul blog, cioe'
Code:
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 Offline
Faraday Member
**
Karma: 43
Posts: 3486
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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

no comment

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
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
Online Online
Faraday Member
**
Karma: 49
Posts: 6022
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa Leo, ma vista la grandezza della notizia, hai aperto un topic tipo "il problema millis non esiste ?"
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Genova
Offline Offline
Faraday Member
**
Karma: 43
Posts: 3486
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley http://arduino.cc/en/Tutorial/BlinkWithoutDelay

EDIT: Testato .... ti posso dare una testata?  smiley-grin
Logged

no comment

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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


0
Online Online
Faraday Member
**
Karma: 49
Posts: 6022
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley e Leo deve ricevere un premio nobel  smiley
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley e Leo deve ricevere un premio nobel  smiley

smiley-kitty
Logged


Genova
Offline Offline
Faraday Member
**
Karma: 43
Posts: 3486
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
accomodati pure, ma ritengo non sia giusto riceverla.

Ueee guarda che scherzavo  smiley-grin
Logged

no comment

0
Online Online
Faraday Member
**
Karma: 49
Posts: 6022
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uhh nessuna citazione?  smiley-cry
Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 336
Posts: 23146
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

uhh nessuna citazione?  smiley-cry
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
Online Online
Faraday Member
**
Karma: 49
Posts: 6022
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il premio nobel non si puo' dividere in due, quindi uno ciascuno.

veramente il massimo sono due persone. Per esempio i coniugi Cuirie hanno fatto a metà con un altro tizio (per un'altra ricerca), mi pare fosse quello in fisica.. ora cerco altre info (quindi 50% Curie e 50% altro tizio, perchè il premio va alla ricerca, non alle persone)

ecco il link: http://www.nobelprize.org/nobel_prizes/physics/laureates/1903/index.html
Antoine Henri Becquerel "in recognition of the extraordinary services he has rendered by his discovery of spontaneous radioactivity" (scoperta della radioattività spontanea)

Pierre Curie and Marie Curie, née Sklodowska "in recognition of the extraordinary services they have rendered by their joint researches on the radiation phenomena discovered by Professor Henri Becquerel" in pratica se ricordo bene Antonie aveva trovato la teoria, i Cuirie invece l'hanno messa in pratica, bombardando di elettroni l'argento(o l'alluminio). Nello stesso periodo Fermi in Italia, scoperto questo fatto, usò del Bario e del Radon creando una sorgente di bombardamento di Neutroni, e quindi molto più efficaci non essendo rallentati o disturbati dai campi elettrici del nucleo.
L'inizio dell'era atomica. C'è una biografia carina di Pierre de Latil su Fermi, interessante come la scienza si mischi con la politica del periodo, e di come sia stato portato avanti il progetto Manhattan.
« Last Edit: December 29, 2012, 08:47:40 am by lesto » Logged

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Pages: 1 ... 64 65 [66] 67 68 ... 72   Go Up
Jump to: