bercioiu Postat Octombrie 23, 2012 Partajează Postat Octombrie 23, 2012 Va supun atentiei un ceas realizat integral de mine: Ceasul este compus dintr-un RTC DS1307, un DS 18b20, un Pic 16F877A, un display LCD 16X2si 3 butoane pentru controlul meniului si al functiilor ceasului. Ceasul are urmatoarele functii:- Afiseaza ora in doua moduri: modul 12H respectiv 24H- In modul 12H, intre orele 00:00 si 12:00 afiseaza pe ecran AM , intre 12:00 si 00:00 afiseaza PM- Este prezenta o alarma zilnica, pe care o putem activa sau dezactiva, cu o iesire pe pinul A3.- Alarma odata pornita, se poate amana cu 5 min prin functia snooze.- Masoara temperatura ambianta si o afiseaza in grade Celsius sau Fahrenheit.- Inregistreaza temperatura minima si maxima masurata si o afiseaza intr-un meniu separat.- Afiseaza calendarul Gregorian corectand ultima zi a lunii februarie in anii bisecti.- Afiseaza primele trei litere ale zilei saptamanii (in engl.).- Are o functie de chime, programabila, la ora fixa, la jumatate de ora sau la ora fixa si jumatate de ora, cu o iesire pe pinul A5- Am prevazut in meniu o functie pentru corectarea timpului dupa 24 de ore de la ultima setare a ceasului,in functie de pierderile sau castigurile datorate cristalului de quartz.In arhiva sunt fisierele DSN, hex-ul si o descriere a ceasului.Mai am sa implementez functia de fus orar. Inca nu m-am prins cum sa fac, ma invart intr-un cerc vicios... Orice sfat mi-ar prinde bine. Link spre comentariu
10vid Postat Octombrie 23, 2012 Partajează Postat Octombrie 23, 2012 Are optiune de ora de vara/iarna?Hex-ul ala e cam maricel, oare din cauza calendarului?Cred ca atat fusul orar cat si ora de vara/iarna sunt niste formatari date doar in momentul afisarii, intern ora trebuie tinuta GMT. Link spre comentariu
bercioiu Postat Octombrie 23, 2012 Autor Partajează Postat Octombrie 23, 2012 Are optiune de ora de vara/iarna? Aia cred ca se poate activa direct in RTC, am sa ma documentez,daca nu, nu-i mare lucru sa mai pun o conditie pe 22 oct (sau cand este) sa adauge o ora si invers. Iti multumesc pentru sugestie! Hex-ul ala e cam maricel, oare din cauza calendarului? Da, hexul este mare pentru ca am scris si epromul si mi-a complectat restul locatiilor libere cu zero Cred ca atat fusul orar cat si ora de vara/iarna sunt niste formatari date doar in momentul afisarii, intern ora trebuie tinuta GMT. Asta este clar, dar nu stiu cum sa fac in momentul cand, spre exemplu, este ora 01:00 AM si vreau sa dau in jos 7 ore, ora va deveni -06:00, trebuie sa adun intai p`acolo 12 ore si dupa aia sa scad fusul orar... Nu ma prind, ma mai gandesc. Link spre comentariu
Liviu M Postat Octombrie 23, 2012 Partajează Postat Octombrie 23, 2012 Pai foloseste intern formatul cu 24 de ore si fa doar afisarea diferentiat (24 ore sau 12 ore + AM/PM) in functie de un parametru. Link spre comentariu
bercioiu Postat Octombrie 23, 2012 Autor Partajează Postat Octombrie 23, 2012 Pai intern 24h folosesc, dar 01:00 AM tot 01:00 este...Cum scad 7 ore din 01:00? Link spre comentariu
Liviu M Postat Octombrie 23, 2012 Partajează Postat Octombrie 23, 2012 Mie-mi iese ceva de genul (mai mult "pseudocod", ca nu stiu exact in ce programezi): oraAfisata = ora - 7;if oraAfisata < 0{ ziAfisata = zi -1; oraAfisata = 24 - oraAfisata;} Link spre comentariu
bercioiu Postat Octombrie 23, 2012 Autor Partajează Postat Octombrie 23, 2012 Corect! Ora negativa de fapt era o zi in urma... Multumesc! Link spre comentariu
GeoMar Postat Octombrie 24, 2012 Partajează Postat Octombrie 24, 2012 Va supun atentiei un ceas realizat integral de mine: Ceasul este compus dintr-un RTC DS1307, un DS 18b20, un Pic 16F877A, un display LCD 16X2si 3 butoane pentru controlul meniului si al functiilor ceasului....Poti atasa schema ceasului in format JPEG, sunt tentat de el daca tot am PIC-ul prin sertare.Poate desenez un cablaj pentru el, in functie de timpul liber.Multumesc. Link spre comentariu
MatyC Postat Octombrie 24, 2012 Partajează Postat Octombrie 24, 2012 Daca e vorba de fus orar e complicat rau de tot. Fiecare tara are politica ei in privinta orei oficiale. Insa daca vrei sa implementezi "daylight saving" asta este alta poveste, mai usoara. Am studiat problema mai demult si trebuie sa am undeva ceva liniii de cod in C pentru asa ceva. Link spre comentariu
bercioiu Postat Octombrie 24, 2012 Autor Partajează Postat Octombrie 24, 2012 Poti atasa schema ceasului in format JPEGAm complectat arhiva cu un fisier *.bmp cu shema electrica. Link spre comentariu
bercioiu Postat Octombrie 24, 2012 Autor Partajează Postat Octombrie 24, 2012 Daca e vorba de fus orar e complicat rau de tot.Am sa-l fac doar sa scada pana la 12 ore sau sa adauge pana la 12 ore, adica un fus orar generic.Insa daca vrei sa implementezi "daylight saving" asta este alta poveste, mai usoara. Am studiat problema mai demult si trebuie sa am undeva ceva liniii de cod in C pentru asa ceva.Mie mi se pare ca asta este mai complicat, deoarece, in fiecare an, ora se schimba in zile diferite, adica in ultima duminica din martie pentru ora de vara si in ultima duminica din oct. pentru ora de iarna. Am sa-l programez pentru "daylight saving" doar pana in 2020, eu zic ca este suficient. Link spre comentariu
Liviu M Postat Octombrie 24, 2012 Partajează Postat Octombrie 24, 2012 Pai daca tot afiseaza calendarul, nu cred ca e chiar asa greu - trebuie numai sa "numeri" ciclic zilele saptamanii (de ex. luni = 1, marti = 2... duminica = 7, ) si cand esti in octombrie (luna = 10), e duminica (zi = 7) si pana la 31 mai ai mai putin de 7 zile (31 - data curenta < 7), e cazul sa dai ceasul inapoi (iupii, abia astept ). Link spre comentariu
bercioiu Postat Octombrie 24, 2012 Autor Partajează Postat Octombrie 24, 2012 Da, este o abordare foarte taioasa, iti multumesc Liviu M, am sa incerc varianta ta. Link spre comentariu
MatyC Postat Octombrie 25, 2012 Partajează Postat Octombrie 25, 2012 Sa nu mai vorbim de cazul anului bisect cu ziua de 29 Februarie.Facilitatea ceasului ca se schimba dupa fusul orar nu-i vad rostul. Setezi ceasul si introduci coordonate geografice ????Eu vad in felul urmator : ceasul sa aiba o optiune de genul "Folosire day light DA/NU" care sa influenteze un indicator (flag). Implica cateva linii de cod dar nu este imposibil. Revin mai tarziu cu detalii.PS. Am studiat rapid datasheet-ul DS1307 si vad ca se ocupa el de anul bisect. Link spre comentariu
bercioiu Postat Octombrie 25, 2012 Autor Partajează Postat Octombrie 25, 2012 Sa nu mai vorbim de cazul anului bisect cu ziua de 29 Februarie.Facilitatea ceasului ca se schimba dupa fusul orar nu-i vad rostul. Setezi ceasul si introduci coordonate geografice ????Eu vad in felul urmator : ceasul sa aiba o optiune de genul "Folosire day light DA/NU" care sa influenteze un indicator (flag). Implica cateva linii de cod dar nu este imposibil. Revin mai tarziu cu detalii.PS. Am studiat rapid datasheet-ul DS1307 si vad ca se ocupa el de anul bisect.De anul bisect are grija RTC-ul.Mai trebuie sa-i pun eu niste conditii la introducerea datelor sa nu-ti permita sa introduci date eronate. Intr-adevar vis-a-vis de fusul orar, este o "frunzulita" care nu cred ca o voi folosi vreodata... Era o idee... Ora de iarna/vara am rezolvat-o cu ajutorul lui Liviu M caruia ii multumesc inca odata! Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum