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

PCF8535 nie aktualizuje numeru dnia tygodnia po północy - jak to naprawić?

Ajatol 13 Wrz 2004 01:04 1451 4
REKLAMA
  • #1 849578
    Ajatol
    Poziom 15  
    Posty: 259
    Pomógł: 1
    Ocena: 2
    Odczytuje tą procedurką czas z pcf i jest ok oprócz nr dnia tygodnia który po minięciu północy się nie zmienia. Sprawdzałem ja kilkukrotnie ale nie mogę znależc błędu. W zmiennej dzientygodnia powinien być ten numer dnia ale tam jest zawsze 0


    Sub Czytaj_pcf8583
    Local Pomocnicza As Byte
    I2cstart
    I2cwbyte &HA0 'Adres PCF8535 = 160
    I2cwbyte 2 'select control register
    I2cstart
    I2cwbyte &HA1 'Adres PCF8535 = 160 dla odczytu
    I2crbyte S , Ack 'Odczytaj sekundy i potwierdż transmisje
    I2crbyte M , Ack 'Odczytaj minuty i potwierdż transmisje
    I2crbyte H , Ack 'Odczytaj godziny i potwierdż transmisje
    I2crbyte D , Ack 'Odczytaj rok i dni
    I2crbyte Mie , Nack 'odczytaj dzień tygodnia i miesiąc
    I2cstop
    Pomocnicza = D And &B00111111 'zerujemy dwa najstarsze bity i zostają dni
    Shift D , Right , 6 'przesuwamy dwa najstarsze bity i zostaje rok
    Lata = D 'lata
    D = Pomocnicza 'dni
    Pomocnicza = Mie And &B00011111 'zerój 3 najstarsze bity i mamy miesiąc
    Dzientygodnia = Mie And &B11100000 'nr dnia tygodnia
    Shift Dzientygodnia , Right , 5
    Mie = Pomocnicza 'mie=nr miesiąca
    End Sub Czytaj_pcf8583
  • REKLAMA
  • #2 849748
    jj
    Poziom 19  
    Posty: 145
    Pomógł: 42
    Wprawdzie z Twojej wypowiedzi wynika, że nie zmienia się tylko dzień tygodnia, ale być może nie zwróciłeś uwagi czy następuje zmiana roku.
    Jeśli rok także się nie zmienia, to najprawdopodobniej winny jest tutaj ustawiony bit maski odzczytu rejestrów miesiąca i daty (bit 3 rejestru control/status PCF8583).

    pozdrawiam
    jj
  • REKLAMA
  • #3 850063
    Ajatol
    Poziom 15  
    Posty: 259
    Pomógł: 1
    Ocena: 2
    Niestety błędnie odczytuje tylko nr dnia tygodnia. Reszta zegara łącznie z rokiem zwiększa sie poprawnie.
  • REKLAMA
  • #4 850512
    Konto nie istnieje
    Konto nie istnieje  
  • #5 850659
    Ajatol
    Poziom 15  
    Posty: 259
    Pomógł: 1
    Ocena: 2
    Poradziłem sobie z tym chociaż tak naprawde to niewiem do końca o co chodziło. Dopisałem procedurkie która wpisywała do pcfa podany dzień tygodnia i teraz po północy licznik dni tygodnia się prawidłowo zwiększa.
REKLAMA