Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Jak uzyskać działający kod do obsługi RTC DS1307 z Atmega88?

IRQ[0] 16 Oct 2021 21:26 627 5
  • #1
    IRQ[0]
    Level 3  
    Witam.
    Od kilku dni walczę z kodem do obsługi RTC DS1307 z atmega88.
    Niestety bezskutecznie - nic nie działa.
    Wszystko jest połączone dobrze bo z arduino wszystko działa.
    Mój kod jest zlepkiem kodów z tych stron:
    https://exploreembedded.com/wiki/Real_Time_Clock(DS1307)_with_AVR
    https://github.com/jarzebski/Arduino-DS1307

    Kod "rtc.c":
    Code: c
    Log in, to see the code


    Kod "rtc.h":
    Code: c
    Log in, to see the code


    Kod "I2C.c":
    Code: c
    Log in, to see the code


    Kod "I2C.h":
    Code: c
    Log in, to see the code
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
  • #2
    linuxtorpeda
    Level 26  
    Proponuję debugować, czyli sprawdzić:
    1) czy funkcje do I2C faktycznie działają,
    2) jeśli transmisja jest poprawna, to czy jest adresowane urządzenie o prawidłowym adresie,
    3) jeśli powyższe działa ok, to czy piszemy/czytamy do/z właściwych rejestrów.

    Może przydać się analizator stanów logicznych.
  • #4
    ex-or
    Level 27  
    IRQ[0] wrote:
    Od kilku dni walczę z kodem do obsługi RTC DS1307 z atmega88.
    Niestety bezskutecznie - nic nie działa.

    A konkretnie co nie działa? Z pewnością podjąłeś jakieś kroki dla wyśledzenia miejsca w programie czy sprzęcie sprawiającego kłopot. Podłączyłeś jakiś debuger, choćby na LEDzie. Powstaiwłeś jakieś printfy do podejrzanych miejsc w kodzie i zrzuciłeś je na UART. Podłączyłeś jakiś analizator logiczny. Włączałeś i wyłączałeś poszczególne bloki programu. Wykonałeś wszystkie te czynności, które wykonuje się debugując software i hardware. Bo przecież nie siedziałeś na tyłku jak maminsynek i nie czekałeś aż mamusia wszystko za Ciebie zrobi. No więc przedstaw wyniki śledztwa żeby mozna było postawić jakąś diagnozę.
    IRQ[0] wrote:
    Wszystko jest połączone dobrze bo z arduino wszystko działa.

    Co to znaczy? Wrzuciłeś ten sam kod do Arduino bez żadnych, nawet najdrobniejszych poprawek? A może ten sam wsad? Do jakiego Arduino? UNO, Leonardo, ESP8266, m8, m16, t85, teensy, bluepill czy jakie tam jeszcze są?
  • #5
    wawxx
    Level 17  
    a może na początek trzeba sprawdzić ustawienie fusebitów, w tym dzielnika przez 8.