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

PCF8583 I2C z Atmega16 – odczyt czasu zwraca stałe wartości 165:165:165

Prodig 23 Sie 2007 12:28 1719 3
REKLAMA
  • #1 4207037
    Prodig
    Poziom 20  
    Posty: 487
    Pomógł: 4
    Ocena: 14
    Witam.
    Zmontowałem pewien układ z PCF8583 podłączonym do Atmegi16. Podłączenie jest zrealizowane tak, że SDA w PCF jest podłączone do PD7 w atmedze, natomiast SCL do PD6. Linie podłączyłem poprzez rezystory 4,7k do plusa. A0 podłączone jest do masy.
    Poniżej przedstawiam fragment kodu w BascomAVR:

    
    $regfile = "m16def.dat"
    $crystal = 8000000
    Config Lcd = 16 * 2
    Cursor Off
    
    Enable Interrupts
    
    Config Sda = Portd.6
    Config Scl = Portd.7
    I2cinit
    
    Dim H As Byte , M As Byte , S As Byte
    
    Do
    I2cstart
    I2cwbyte 160
    I2cwbyte 2
    I2cstart
    I2cwbyte 161
    I2crbyte S , Ack
    I2crbyte M , Ack
    I2crbyte H , Nack
    I2cstop
    H = Makedec(h)
    M = Makedec(m)
    S = Makedec(s)
    
    Locate 1 , 1
    Lcd H ; ":" ; M ; ":" ; S
    Loop
    
    End
    


    Problem polega na tym, że na wyświetlaczu mam cały czas 165:165:165. Wygląda to tak, jakby układ w ogóle nie liczył.
  • REKLAMA
  • #2 4207107
    Jdsoul
    Poziom 23  
    Posty: 501
    Pomógł: 47
    Ocena: 10
    Wyświetlacz wyświetla ten sam wynik :) ??

    Nie zastanawia cię fakt, że godzina ma wartość 165, minuta 165, i sekunda 165 ???

    Myślę że masz problem z komunikacją I2C, dodaj prostą opcję wyzerowania H, M, S (H = 0;, M=0; S=0;) i sprawdź czy rzeczywiście w PCF w rejestrach coś siedzi :).
    Potem zmierz napięcia na kwarcu , conajmniej jedno z napięć powinno być w okolicach 2,5V.
    Co oznacza że kwarc podpięty pod PCF działa.
  • REKLAMA
  • #3 4207161
    snow
    Poziom 31  
    Posty: 1825
    Pomógł: 178
    Ocena: 201
    Może od złego miejsca czytasz rejestry sekund, minut i godzin.
  • #4 4207188
    Prodig
    Poziom 20  
    Posty: 487
    Pomógł: 4
    Ocena: 14
    Sprawa rozwiązana. Wysłali mi z hurtowni PCF8563 zamiast PCF8583. Nie zauważyłem tego. Teraz wymieniłem i jest OK.
REKLAMA