Witam.
|
|||
Mirley - Elektronika i Programowanieprojekty, programy.... wszystko o elektronice |
CiasteczkaStrona używa cookies (ciasteczek). Jeśli nie chcesz, by te pliki były zapisywane na Twoim dysku zmień ustawienia swojej przeglądarki. Czym są cookies? LogowaniePolecane StronyPopularne Dzisiaj
|
|
mirley (c) 2007-2020 Jeżeli chcesz pomóc w rozwoju witryny kliknij tutaj |
Re: RTC
Dolutuj pod podstawkę układu PCF kondensator 100nF jak najbliżej jego nóżek, u mnie załatwiło to problem.
Ps. Rysunki mozna dodawać tylko za pomocą zewnętrznych serwisów
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
PCF 8583/8563
Witam nie chciałem tworzyć nowego tematu.
Mam prośbę szczególnie do Mirka o sprawdzenie powyższego programu. Jest to program wyświetlający ,przynajmniej powinien, czas na lcd 16x2. Niestety zegar ,albo zaczyna od 0:0:80 do 165:165:165 ,albo zaczyna od 165:165:165 i nic się nie dzieje.
Linie SDA i SCL połączyłem przez rezystory 4,7k. Chyba ,że koniecznie muszą być 3,3k.
Prosiłbym o wypowiedzi i sugestie na temat tego programu.
Pozdrawiam i liczę na odpowiedź. Sławek ;]
Re: Program
Wywal linijki :
podprogramy nie są tu konieczne a jeśli nawet będą konieczne to ta deklaracja jest zła. Podprogram, etykieta, czy tez funkcja ma leżeć poza pętlą główną programu i może być z niej ewentualnie wywoływana. Nie wiem czym skutkuje wstawienie podprogramu do pętli głównej i jak się wtedy uC zachowuje. Popatrz na moje programy, nie mam nigdzie czegos takiego, szczerze mówiąc nigdy nie używam w bascomie funkcji i Declare Sub
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
$regfile =
Tak wywaliłem te linijki ,ale wiadomo było ,że się nic nie zmieni, jedynie program jest mniejszy trochę.
I co Mirek mógłbyś sprawdzić ten program u siebie? Masz taką ładną płytkę testową i jakby zadziałało to bym wiedział ,że mam coś namieszane technicznie. Choć myślę ,ze technicznie to może być ,że zegar się późni czy śpieszy ,a tu niestety zegar ,albo zaczyna od 0:0:80 do 165:165:165 ,albo zaczyna od 165:165:165 i nic się nie dzieje.
Tak jak mówiłem linie SCL SDA są przez rezystrory 4,7k w piątek zmienie na 3,3k.
A może już wiesz gdzie jest błąd. Najgorsze jest to ,że ja nie wiem co mam odczytać i jak to zrobić.
Szczególnie zastanawia mnie ta linijka co ja przez to robię ;]
Wiem jedynie ,że poprzez wpisanie 163 to odczytuje a 162 zapisuje. 2 (02H) oznacza jakby sekundy ,ale nadal nie łapię ;]
Liczę na pomoc i pozdrawiam Sławek :)
Re: PCF
Ustawiłeś fusebity tak aby mikrokontroler działał na te 8MHz które zadeklarowałeś na początku? jeśli częstotliwość pracy nie zgadza się z tą zadeklarowaną to I2C na pewno nie pójdzie
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Działa!
Nareście działa ,moimi adresami ,były 160 i 161 ;]
Pozdrawiam ,troche potestuje i zdam relacje ;]
Re: Adres
Pin adresowy miałeś pewnie zwarty inaczej niż jest domyślnie podłączony.
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Teraz pozostało zabrać się za
Teraz pozostało zabrać się za wyświetlenie pozostałych parametrów ,a szczególnie wykonać zmienianie godziny. Masz jakiś pomysł?
Pośrednio już wiem jak za to się wziąć:
Ale nie wiem jak to zrobię z przyciskami ,jakoś się to zrobi.
W tym programie zrobiłem ,by przy włączeniu do pcf-a wpisywał w godziny 19 ,zrobiłem to w ramach testu i działa zegar startuje od 19:0:0 :)
Pozdrawiam
Re: PCF
Zapis i odczyt pcf'a zamknij w procedurki , aby wywoływać je jedną linijką. Obsługę przycisków znajdziesz w kodach źródłowych u mnie na stronie. Popatrz do mojego programu w projekcie prostego sterownika domowego. Tam wszystko napisałem to co chcesz zrobić
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Nie no niemogę się z tym
Nie no niemogę się z tym uporać ,bo właśnie niezbyt znam się na procedurach ,a do tego same się ona włączają nie wiem czemu :/
Re; PCF
A gdzie wstawiłeś te procedurki? Ma to wyglądać tak
Ten fragmenty kodu mają być umieszczone poniżej pętli głównej do loop. Wywołujesz gdzieś wcześniej w programie Gosub zapis_rtc i sekundy, minuty i godziny są zapisywane. podobnie po wykonaniu Gosub odczyt_rtc, czas zostanie wpisany do zmiennych Sekundy, minuty, Godziny. W programie trzeba zrobić jeszcze obsługę timera żeby to było sensowne i odliczać opóźnienia za jego pomocą
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
$regfile =
Nareście działa długo nie mogłem dojść z przyskami ,bo wartość godziny i minut sama się zwiększałam ,ale już jest ok ;]
Nie mam jeszcze pojęcia jak zrobić to ,że gdy sekundy i minuty są <10 to z przodu dopisujemy 0.
Re: Zegar PCF
Z tym akurat nie powinno byc problemu, trzeba tylko rozbić linijkę z wyświetlaniem czasu na kilka poleceń, zamień:
na:
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.
Dzięki bardzo, teraz
Dzięki bardzo, teraz pozostaje mi zakup trymerka i kombinowanie ,by zegarek chodził równiuśko :)
Pozdrawiam ;]
drobna sugestia - wariujące cyferki
dzięki za dokładną rozpiskę PCF'a !
Ja spotkałem się jeszcze z problemem przeskakującej godziny, np z 22 na 40 i to samo z datą.
Rozwiązaniem było dodanie do procedurki odczytu maski - to zalatwiło sprawę
p. tadi
Odczyt_rtc:
I2cstart
I2cwbyte 162
I2cwbyte 2
I2cstart
I2cwbyte 163
I2crbyte Sekundy_bcd , Ack
I2crbyte Minuty_bcd , Ack
I2crbyte Godziny_bcd , Nack
I2cstop
Sekundy_bcd = Sekundy_bcd And &B01111111
Minuty_bcd = Minuty_bcd And &B01111111
Godziny_bcd = Godziny_bcd And &B00111111
Sekundy = Makedec(sekundy_bcd)
Minuty = Makedec(minuty_bcd)
Godziny = Makedec(godziny_bcd)
Return