Go Down

Topic: swRTC (Read 87893 times) previous topic - next topic

pablos

http://www.epochconverter.com/ ho preso il primo che è uscito da google
però il mio orologio è sbagliato dal 1 gennaio, non c'è problema l'ho corretto con un -86400 fino al 31/12/2015 non ho problemi era solo a titolo informativo.

no comment

leo72

Riguarderò il codice.

pablos

No Leo, voglio dire, non voglio il rimborso o avvarlermi di garanzia :) ti chiedo ..  ho qualche problema io? o puoi constatare che  siano intervenute delle varianti? perchè anch'io ho dei dubbi, non capisco perchè ho quei risultati.

ciao
no comment

leo72


No Leo, voglio dire, non voglio il rimborso o avvarlermi di garanzia :) ti chiedo ..  ho qualche problema io? o puoi constatare che  siano intervenute delle varianti? perchè anch'io ho dei dubbi, non capisco perchè ho quei risultati.

ciao
[/quote
Tempo fa scovai un problema con l'algoritmo che ho usato. Dopo il 29/2/2000 dovevo aggiungere a mano 1 giorno perché il 2000 è un anno particolare: secondo la classica formuletta non sarebbe bisestile (un anno è bisestile se è divisibile per 4 ma non per 100) però lo diventa perché è divisibile per 400.
Adesso quel giorno in più sembrerebbe di troppo. Tu poi mi dici che nel 2013 il timestamp è errato, così come lo sarà nel 2014 e 2015 ma nel 2016 sarà corretto. Guarda caso, il 2016 è bisestile. Sarà un caso?

pablos

scusa non ho capito questo quote
Quote
Tempo fa scovai un problema con l'algoritmo che ho usato. Dopo il 29/2/2000 dovevo aggiungere a mano 1 giorno perché il 2000 è un anno particolare: secondo la classica formuletta non sarebbe bisestile (un anno è bisestile se è divisibile per 4 ma non per 100) però lo diventa perché è divisibile per 400.


ho detto io ste cose??
no comment

leo72

No, ti spiegavo che tempo fa dovetti aggiungere 1 giorno alla formula perché dopo il 29/2/2000 andava indietro di 1 giorno.
Ora però quel giorno parrebbe in più, tu mi dici infatti che devi togliere 86400 secondi affinché tutto torni.
Devo capire quindi cosa c'è che non va.

pablos

ahhh scusa ho letto "Tempo fa scovavi" riferito a me ... :) sorry
no comment

leo72

Credo di aver risolto. Il problema era sempre nella questione delle date post 29/2/2000. Non avevo corretto la funzione che trasformava un timestamp in un orario ma solo quella inversa, cioè quella che forniva il timestamp dell'orario corrente.
Quello sopra è il timestamp stampato dalla libreria dopo aver impostato l'orologio, quello sotto è l'orologio regolato con il timestamp. I valori coincidono.
Code: [Select]

16:18:53 -- 13/1/2013 (Leap year: no)
Day of week: 0 -- Timestamp: 1358093934



16:18:54 -- 13/1/2013 (Leap year: no)
Day of week: 0 -- Timestamp: 1358093934

La versione 1.0.6 è sul mio sito:
http://www.leonardomiliani.com/?p=411

pablos

ok funzia, grazie
no comment

leo72


Testato

scoprii io questo bug se ricordi,
ricordo anche che la soluzione fu cmq una pezza, nel senso che dovettimo decidere se tenere corretto il pre 2000 o il post 2000

e' acnora cosi' ? cioe' le date ante 2000 restano sbagliate ? (e' a titolo informativo, perche' onestamente non ce ne frega a nessuno, mica dobbiamo fare orologi che segnano gli anni 90  :))
pero' se e' csi' si mette una bella nota "la swRTC funziona solo con date anni 2000"
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72


scoprii io questo bug se ricordi,
ricordo anche che la soluzione fu cmq una pezza, nel senso che dovettimo decidere se tenere corretto il pre 2000 o il post 2000

Tu scopristi il bug (il giorno discriminante è il 29/02/2000, per via del fatto che il 2000 è un anno quattrocentenario) e ci misi la pezza. Ma l'avevo messa solo sulla conversione data/timestamp, non sulla timestamp/data.

Quote

e' acnora cosi' ? cioe' le date ante 2000 restano sbagliate ? (e' a titolo informativo, perche' onestamente non ce ne frega a nessuno, mica dobbiamo fare orologi che segnano gli anni 90  :))
pero' se e' csi' si mette una bella nota "la swRTC funziona solo con date anni 2000"

No, adesso la swRTC gestisce i timestamp in modo corretto, sia nel caso di impostare la data col timestamp sia nel caso di fornire il timestamp dalla data interna.

Testato

ottimo, adesso possiamo fare un orologio che segna il 20/01/1990  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

leo72


ottimo, adesso possiamo fare un orologio che segna il 20/01/1990  :)

La tua data di nascita?  ;)

Testato

magari, ci metterei subito la firma  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Go Up