Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

PCF8583 + ATMEGA8 + BASCOM -> problem z odczytem daty

JOLLY 07 Nov 2007 08:13 6431 38
Optex
  • #31
    JOLLY
    Level 15  
    Można jeszcze sprawdzić, czy generator w PCFie pracuje, co sekunda powinien być impuls na wyjściu INT, sprawdź to, i ja też mam kondensator przy samych nóżkach, za diodami, bo był trochę oddalony i wtedy nie odmierzał tak dokładnie.
  • Optex
  • #32
    madziulek
    Level 16  
    Jutro sprawdzę to wyprowadzenie INT. ale ono daje przerwanie na procesor?? Ja w tej chwili nie mam go nigdzie podłączonego! Zauważyłem jeszcze jedna rzecz, mianowicie napisałeś że kwarc ma 32,768, ja ostatnio kupiłem 30 a próbowałem na 32 i 12 ale wszystko w MHz a jak to powinno być???
    Napiśz dokładnie o jaki kwarc chodzi a co będzie przy takim jakie ja zastosowałem, może problem tkwi właśnie w tych kilku rzędach wielkości!!!

    Pozdrawiam
  • Optex
  • #33
    JOLLY
    Level 15  
    Nie musisz mieć podłączonego wyjścia INT do procka, ale jest ono przydatne, właśnie dlatego, że może dawać impuls na wejście przerwania, co jest użyteczne do wielu rzeczy. Co do kwarcu to do PCF musi być to kwarc 32,768khz, popularny kwarc zegarkowy, żaden megahercowy.

    Zresztą tu jest wszystko http://www.alliedelec.com/Images/Products/Dat...miconductors_Actives-and-Passives_2369990.pdf
  • #34
    madziulek
    Level 16  
    To może właśnie w tym kwi problem, że PCF sobie po prostu nie daje rady, jak myślisz, może tak być czy raczej nie?
    Jutro wejdę kupię (mam nadzieję) taki kwarc i wtedy zobaczymy!
  • #35
    JOLLY
    Level 15  
    Kwarc nie może być inny, jeśli dawałeś inne to na bank jest to przyczyna, musi być dokładnie 32,768khz żeby układ poprawnie działał.
  • #36
    madziulek
    Level 16  
    Aha, to jutro postaram się go kupić i wtedy zobaczymy!

    Dzięki i pozdrawiam
  • #37
    JOLLY
    Level 15  
    Jeśli masz jakąś uszkodzoną płytę główną to tam znajdziesz taki kwarc na pewno, jest w takiej walcowatej, metalowej obudowie, wpisz w google kwarc 32.768khz a znajdziesz zdjęcie.
  • #38
    madziulek
    Level 16  
    Już cyka;)
    Jedna to ten kwarc!
    Dzięki za zainteresowanie i oczywiście SKUTECZNĄ POMOC!!!

    Pozdrawiam
  • #39
    Jacek31
    Conditionally unlocked
    Zajrzyj sobie do noty katalogowej. Tak de fakto ten układ jest poprany, bo nietypowo koduje informacje o dacie. Masz tu fragment mojego kodu powinien ci pomóc w rozgryzieniu problemu. To definicja i opis rejestrów PCF8583.

    'Deklaracja rejestrów dla zegara czasu rzeczywistego PCF8583'
    Const Rtc_in_adres = 160 'Adres do zapisu danych A0 do GND
    Const Rtc_out_adres = 161 'Adres do odczytu danych
    Const Rtc_control = &H00 'Aders rejestru kontrolnego RTC
    'Bit 0 - flaga od Timera, Bit1 - flaga od alarmu
    'Bit 2 - (1) alarm aktywny, (0) nieaktywny rejestry 08 do 0F są zwykłym RAM
    'Bit 3 - maska dni tygodnia i roku, 1 - aktywna dane są zerowne
    'Bity 4 i 5 - tryb pracy oscylatora, dla nas 00 - czyli 32.768KHz
    'Bit 6 - (0) zliczaj, (1) wstrzymaj zliczanie i pamiętaj ilość impulsów
    'Bit 7 - (0) zliczaj impulsy, (1) - wstrzymaj i zresetuj dzielnik
    Const Rtc_setsek = &H01 'Rejestr setnych sekundy
    Const Rtc_sek = &H02 'Rejestr sekund ,dnae w BCD
    Const Rtc_min = &H03 'Rejestr minut ,dane w BCD
    Const Rtc_godz = &H04 'Rejestr godzin
    'Bity 0-3 jedności w BCD, bity 4,5 - dziesiętki od 0 do 2
    'Bit 6 flaga AM (0)/ PM (1), Bit 7 decyduje o trybie 24 (0) lub 12 (1) godzinnym
    Const Rtc_rok_data = &H05 'Rejestr daty
    'Bity 0-3 jedności dnia w BCD, 4 i 5 - dziesiętki dnia
    'Bity 6 i 7 rok, ale 00 to przestępny, a 01, 10, 11 - nieprzestępny
    'Jak widać układ nie pamięta całej daty, ale my wykożystamy dodatkowy RAM
    'układu dla zapamiętania całego roku.
    Const Rtc_dni_tyg = &H06 'Rejestr dni tygodnia i miesięcy
    'Bity 0-3 - jedności miesięca w BCD, bit 4 - dziesiątka miesiąca
    'Bity 5 - 7 = dzień tygodnia od 0 do 6
    Const Rtc_timer = &H07 'Rejestr timera układu RTC
    Const Rtc_alarm_ctr = &H08 'Rejestr kontroli alarmu
    'Bity 0-2 = funkcjie timera: 000 - Off, 001 - setne sekundy, 010 - sekundy
    '011 - minuty, 100 - godziny, 101 - dni, 110 -nie używane, 111 - tryb test.
    'Bit 3 - przerwanie od timera (0) nieaktywne, (1) aktywne
    'Bity 4 i 5 - funkcjie alarmu: 00 - OFF, 01 - codzienny, 10 - na wybrany dzień
    'tygodnia, 11 - na konkretną datę.
    'Bit 6 -alarm dla timera, (0) - OFF, (1) - ON
    'Bit 7 -przerwanie od alarmu, (0) - OFF, (1) - ON.