Jump to content
ELFORUM - Forumul electronistilor
vasile doru

Ceas cu PIC si PCF8583

Recommended Posts

Guest zuzurelu

Ai o schema ceva ? Un link...PCF-ul tau este un RTC ( Real Time Controller ) si desigur are nevoie de initializari, asa cum ti s-a spus, via I2C. Puteai sa faci un ceas direct in PIC... fara RTCYO3HCV,

Link to comment
Share on other sites

Puteam sa fac ceasul direct in PIC, dar nu este alimentat tot timpul. Problema mea este la reglarea orei/datei (nu la initializarea PCF-ului). Am incercat sa citesc datele din PCF, sa le incrementez si apoi sa le scriu in PCF fara a pune conditii in softul PIC-ului la depasirea valorii maxime. (am crezut ca PCF-ul aduce singur aceste date in 0 sau 1 in functie de ce anume vreau sa reglez). M-ar interesa un procedeu cit mai simplu de reglare al ceasului, asta pt simplitatea softului (PIC-ul realizeazasi alte functii). Sper ca am fost inteles la problema mea.

Link to comment
Share on other sites

Guest zuzurelu

Nu inteleg cum ai facut un ceas cu PIC+PCFxxx fara sa cunosti cum functioneaza RTC-ul ( macar magistrala de programare I2C ), presupun ca ai luat codul de undeva si l-ai "pornit" ca atare. In orice limbaj ai lucra, treaba sta in felul urmator :

 

1. Ai un set de functii pentru comunicatia I2C de genul

 

send_byte()

receive_byte()

etc

 

cu care poti comunica cu orice device I2C

 

2. Pe baza lor, ai un alt set de functii mai "evoluate" sau specifice PCFxxx

cu care interactionezi cu RTC-ul tau

 

read_minutes()

write_minutes()

increment_minutes()

etc

 

Daca nu le ai, pai construieste-le, sau cauta pe net chiar si pentru alt controller, le poti adapta relativ usor PIC, conceptual sunt identice.

 

http://www.piclist.com

http://forum.microchip.com

http://www.oshonsoft.com/picexamples.html

http://www.phanderson.com/PIC/16C84/8574_1.html

http://www.asmfr.com/codes/PIC-16F84-TIMER-PCF8583-EEPROM-24LC65-COMMUNICATION-I2C_15193.aspx

 

 

 

YO3HCV, :axe:

Link to comment
Share on other sites

Nu comunicarea cu PCF-ul este problema. Sa va dau un exemplu: pentru reglarea minutelor citesc minutele, incrementez minutele, scriu minutele. Problema este cind dupa incrementare valoarea minutelor ajunge la 60, scriu aceasta valoare si asa ramine, (am crezut ca PCF-ul nu scrie aceasta valoare de 60 ci de 0) la urmatoarea citire a minutelor acestea au valoarea de 60.PIC-ul rezolva problema, dar prin conditii care fac softul mai complicat.

Link to comment
Share on other sites

Nu comunicarea cu PCF-ul este problema. Sa va dau un exemplu: pentru reglarea minutelor citesc minutele, incrementez minutele, scriu minutele. Problema este cind dupa incrementare valoarea minutelor ajunge la 60, scriu aceasta valoare si asa ramine, (am crezut ca PCF-ul nu scrie aceasta valoare de 60 ci de 0) la urmatoarea citire a minutelor acestea au valoarea de 60.PIC-ul rezolva problema, dar prin conditii care fac softul mai complicat.

Link to comment
Share on other sites

Guest zuzurelu

Nu comunicarea cu PCF-ul este problema. Sa va dau un exemplu: pentru reglarea minutelor citesc minutele, incrementez minutele, scriu minutele. Problema este cind dupa incrementare valoarea minutelor ajunge la 60, scriu aceasta valoare si asa ramine, (am crezut ca PCF-ul nu scrie aceasta valoare de 60 ci de 0) la urmatoarea citire a minutelor acestea au valoarea de 60.PIC-ul rezolva problema, dar prin conditii care fac softul mai complicat.

Orice ceas care se respecta :partyman: merge cam asa :00...01...02...03...........57...58...59 -> 00 ...01...02Cand vei citi 59 din PCF.... incrementezi la 00, nu la 60... Valoarea 60 nu are ce sa caute in initializarile tale. Nu se complica nimic in software decat un if, de genul :if(value==59) write(0)else write(value)Ma mir totusi ca PCF nu are functii specifice si autoincrementYO3HCV,
Link to comment
Share on other sites

Ai o schema ceva ? Un link...PCF-ul tau este un RTC ( Real Time Controller ) si desigur are nevoie de initializari, asa cum ti s-a spus, via I2C. Puteai sa faci un ceas direct in PIC... fara RTCYO3HCV,

1. Cat de precis este un ceas facut "direct in PIC"? Este precis cat un ceas "de automobil", anume sa arate minutul corect si dupa circa 6 luni de zile, in conditii de -30... +70 grade Celsius? Ma intereseaza asa ceva. 2. In caz ca nu poate fi atat de precis, cum s-ar face (cel mai simplu) ca sa fie?3. Exista PIC-uri care au RTC intern?
Link to comment
Share on other sites

In functie de quartz-ul disponibil trebuie alese intarzierile sau se selecteaza un quartz cat mai apropiat de frecventa marcata pe el.Se mai poate conecta la pic un modul de radio pe 77Khz care este folosit ca referinta si corecteaza frecventa ceasului, in cazul asta ceasul poate functiona si cu oscilatorul fara precizie asa mare.

Link to comment
Share on other sites

1. In principiu este la fel de precis. Precizia depinde numai de quartz-ul folosit.2. Se poate imbunatati precizia prin folosirea unui termostat simplu pentru quartz. Daca folosesti un modul pe 77kHz ceasul va bate secunda si dupa zeci de ani (cu conditia sa nu se desfiinteze statia care emite semnalele).3. Da exista.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.Terms of Use si Guidelines