Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

atmega328 Bascom - Odczyt danych z PCF8563 - błędy odczytu z rejestru -dodaje 40

maximus22_kr 16 Jan 2015 23:24 2187 4
Optex
  • #1
    maximus22_kr
    Level 18  
    Witam
    Mam płytkę Loggera GPS + SD + PCF8563. Jeśli chodzi o GPS i zapis na SD wszytko jest OK. Problemem jest ( i to pierwszy raz się z czymś takim stykam ) odczyt danych z z układu PCF8563.
    Otóż dla pewnych wartości sekund, odczytana wartość czasu - godziny jest większa o 40 ( czterdzieści ).

    Czyli jeśli czas jest
    22:40:02
    to jest wyświetlany poprawnie, ale jak jest
    22:40:50
    to wyświetla
    62:40:50

    Zauważyłem, że gdy sekundy są pomiędzy 40 a 0, to dodaje wartość 40 do wartości godzin. Właściwie nie dodaje tylko nagle taka wartość jest odczytana z rejestru układu PCF8563. Podobnie jest z dniem miesiąca - zamiast 16 stycznia jest 56 stycznia.

    Testując poniższy program na Atmega644P ( oczywiście po zmianie w konfiguracji pinów ) - efekt jest identyczny.

    Sprawdzałem na trzech układach PCF8563P i to samo na każdym.

    Czy sposób poprowadzenia ścieżek na płytce może mieć wpływ na takie zachowanie układu ?

    Siedzę nad tym już trzy dni i nie widzę żadnego błędu w programie.
    Dodam, że tego samego "sposobu" odczytu używam od kilku lat i jeszcze się nie spotkałem z takim problemem odczytu rejestru.

    Schemat poniżej
    atmega328 Bascom - Odczyt danych z PCF8563 - błędy odczytu z rejestru -dodaje 40

    Kod
    Code: vbnet
    Log in, to see the code
  • Optex
  • #2
    Anonymous
    Anonymous  
  • Optex
  • #3
    maximus22_kr
    Level 18  
    Witam
    Niestety to nic nie daje.
    Jak na razie mam trzy sposoby odczytu rejestrów w PCF8563:

    Code: vbnet
    Log in, to see the code


    Code: vbnet
    Log in, to see the code


    Code: vbnet
    Log in, to see the code


    Niestety w każdym przypadku odczytane godziny ( oraz dzień miesiąca ) są większe o 40 w przypadku, gdy sekundy są równe lub większe od 40.

    Dodano po 1 [godziny] 17 [minuty]:

    Problem rozwiązałem - maskowanie było w złym miejscu

    Powinno być:
    Code: vbnet
    Log in, to see the code
  • #4
    Anonymous
    Anonymous  
  • #5
    elektropatycka
    Level 9  
    Tutaj problem polega na tym, że trzeba maskować sekundy, minuty i godziny. W PCF8583, jest to rboione automatycznie.