logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Zegar czasu rzeczywistego

jaroslawk 28 Sty 2010 09:29 1977 4
  • #1 7604356
    jaroslawk
    Poziom 21  
    Witam,
    Czy znacie może jakiś układ scalony czasu rzeczywistego, który posiada w sobie kalendarz z rokiem przestępnym oraz automatyczną zmianę czasu ( letni / zimowy)?.
    Pozdrawiam
    Jarek
  • #2 7604361
    kamyczek
    Poziom 38  
    Jeśli ma kalendarz to ma rok przestępny zapewne ale strefy czasowe to sobie trzeba dopisać ręcznie ;) np PCF8583
  • #3 7604458
    jaroslawk
    Poziom 21  
    Chciałbym nie obsługiwać programowo zamiany czasu oraz daty. Zależy mi abym raz ustawił datę i godzinę a reszta przebiegała bez użycia procesora. W chwili obecnej mam układ PCF8583 gdzie w/w operacje są realizowane programowo. W moim programie odczyt daty i czasu przez mikrokontroler realizowany jest tylko w chwili wystąpienia zdarzenia (zmiany stanu określonego wejścia uC). Abym mógł wykrywać zmianę czasu (letni/zimowy, rok przestępny) muszę odczytywać układ PCF co sekundę a to z kolei koliduje z moimi założeniami w programie.
    Opis działania układu:
    Każdy pin z portu A procesora powoduje wygenerowanie przerwania i wywołanie procedury zapisu danych do pamięci I2C. Zapis danych zawiera datę, godzinę oraz stan poszczególnych pinów z portu A procesora. Jeżeli odczytuje czas co sekundę i pojawia się przerwanie to do pamięci zapisują się dziwne dane.
  • #4 7604663
    Jurek007
    Poziom 17  
    Może DCF77 :)
    Fabryczne zegarki z DCF77 nie są bardzo drogie.
    Pozdrawiam
  • #5 7604977
    Mad.
    Poziom 18  
    jaroslawk napisał:
    Opis działania układu:
    Każdy pin z portu A procesora powoduje wygenerowanie przerwania i wywołanie procedury zapisu danych do pamięci I2C. Zapis danych zawiera datę, godzinę oraz stan poszczególnych pinów z portu A procesora. Jeżeli odczytuje czas co sekundę i pojawia się przerwanie to do pamięci zapisują się dziwne dane.

    Od razu uprzedzam, że jestem początkującym jeśli chodzi o uC. Z I2C jeszcze nie korzystałem, ale te dziwne dane może biorą się z złego zarządzania przerwaniami. Na czas odczytu czasu powinieneś zablokować globalne przerwania, po odblokowaniu od razu obsłużone zostałoby przerwanie od portu A. Jeśli takiej rzeczy nie zrobisz to, jeśli w połowie odczytu (i od razu zapisu czasu do zmiennych) wystąpi przerwanie, to jak będziesz odczytywać czas (ze zmiennych, które są w pamięci uC), aby zapisać go do zew. pamięci, to część bitów będzie starych, a część nowych. Nie wiem jak wyglądają przedziały czasowe w takiej komunikacji I2C, więc tylko rzucam pomysłem co do tych "dziwnych danych".
    Jak coś, to niech ktoś potwierdzi (albo zaprzeczy ;)), nie chciałbym wprowadzać w błąd.
REKLAMA