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

zegar na ds1307- wyswietlanie niepopraawnej daty i godziny

maly_ZE 15 Kwi 2011 15:59 2568 10
REKLAMA
  • #1 9403925
    maly_ZE
    Poziom 14  
    Witam;
    Mam problem z zegarem RTU ds1307. Przejde od razu do konkretów.
    Mianowicie podłączyłem ds-a pod atmega32 według schemtu:
    zegar na ds1307- wyswietlanie niepopraawnej daty i godziny
    Na atmege wgrałem krótki programik obslugujący ds-a po I2C(załączę tutaj tylko maina):
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod



    Podłączam terminal pod Rs232 i wyświetla mi jakieś głupoty np:

    05:03:38 09.07.2011 [dzien tygodnia: 4]

    05:03:39 15.07.2011 [dzien tygodnia: 4]

    05:03:39 15.07.2011 [dzien tygodnia: 4]

    Nie mam pojęcia w czym jest problem;( Niby jest wyświetlana data i czas ale jednak nie jest ona poprawna.
    Proszę o pomoc w znalezieniu błedu.
    Pozdrawiam
  • REKLAMA
  • #2 9403946
    tadzik85
    Poziom 38  
    AVCC niepodłączone !!

    Pokaż funkcje odpowiedzialne za komunikacje z DSem
  • #3 9403989
    maly_ZE
    Poziom 14  
    Pod co powinno być podłączone AVCC??

    Zawartość pliku i2cds1307.c:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • REKLAMA
  • #4 9404016
    tadzik85
    Poziom 38  
    AVCC podłączamy zawsze przynajmniej bezpośrednio do VCC!!. a AGND do masy rzecz jasna.

    przykłady twoich wyświetleń wskazują na blednę dekodowanie odebranego rejestru albo błąd w funkcji odbierającej.
  • REKLAMA
  • #5 9404178
    maly_ZE
    Poziom 14  
    Domyślam się że problem leży właśnie gdzieś w tej kwestii, ale może jakaś konkretniejsza podpowiedź.?
    Z góry dzięki
  • #6 9404252
    asembler
    Poziom 32  
    Wlasnie miałem identyczny problem. Zmieniłem kwraz z 8 na 22mhz i zapomniałem od max 2-wire po dodaniu opóźnien i to znacznych wszystko wróciło do normy.
  • #7 9406982
    maly_ZE
    Poziom 14  
    Datę ustawia mi poprawnie.. ale gorzej z czasem.. nie mam pojęcia dlaczego tak sie dzieje ze czasami ustawia dobra godzinę, po czym wyłączam zasilanie na kilka sekund, i gdy włączam go ponownie wyświetla jakieś głupoty.. próbowałem zerować zmienne przechowujące czas przy inicjacji, czyścić tablice(przed pierwszym zapisem) w której zapisywana jest godzina ale to nic nie pomaga i jestem zdany na łaskę zegara- czy akurat będzie mu się chciało zadziałać poprawnie;/ może ktoś ma jeszcze jakiś pomysł dlaczego tak się dzieje.?? Brak kondensatora filtrującego zasilanie może być tego powodem.?? Dodam ze płytkę zasilam poprzez programator..
    Proszę o jakąś rade:)
    Pozdrawiam
  • REKLAMA
  • #9 9407276
    piotrva
    VIP Zasłużony dla elektroda
    nie wiem, czy o tym była jakaś mowa, ale ODŁĄCZASZ ZASILANIE i jeśli zegar nie ma podtrzymania to się po prostu zresetuje
  • #10 9407415
    dondu
    Moderator na urlopie...
    piotrva napisał:
    nie wiem, czy o tym była jakaś mowa, ale ODŁĄCZASZ ZASILANIE i jeśli zegar nie ma podtrzymania to się po prostu zresetuje


    To nie ma znaczenia ponieważ na początku ustawia godzinę :

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod
  • #11 9407863
    janbernat
    Poziom 38  
    Brak kondensatora 100nF przy zasilanu zegara potrafi dać zadziwiające odczyty.
    Np. co jakiś czas zegar chodzi 2 razy szybciej.
    A po chwili już nie.
    Że już o kondensatorach przy procesorze nie wspomnę.
    No i co jest w rejestrze TWBR?
REKLAMA