Witam wszystkich,
Otóż napotkałem następujący problem przy obsłudze wspomnianego w temacie zegara PCF8583. Godzina obsługiwana jest prawidłowo (stąd też wnioskuje, że metody konwersji BCD <-> DEC są ok). Najpierw zamieszczę kod, później opiszę problem:
Odczyt:
Odczyt wykonywany jest w przerwaniu zewnetrznym, pod które jest podłączona noga INT zegara, w związku z tym odczyt następuje co sekundę.
Teraz zapis:
Efekt: Przy uruchomieniu (bez baterii) mamy oczywiscie godzine 00:00 1/1/2012. Po zmianie godziny na 23:59 (za pomocą UstawGodzineNaRTC) odczyt działa OK, wyswietla mi się godzina 23:59. Po minięciu minuty (nie korzystajac z UstawDateNaRTC, czyli data jest domyslna po uruchomieniu RTC 1/1/2012) data jaka mi sie wyswietla to 0/1/2012... Jeśli w tym momencie znowu ustawie godzine na 23:59 to po minięciu minuty wyswietli się 2/1/2012. Następnie znowu przestawiam godzinę na 23:59 i po minięciu minuty mam 00:00 2/1/2012, a po ponownej takiej operacji jest 4/1/2012 itd itd... Jakby nie obslugiwal dni nieparzystych. Ale jeśli uzyje UstawDateNaRTC i ustawie np 15/10/2012 i godzine 23:59, po minucie otrzymuje 14/10/2012... Nie jestem w stanie sprawdzic wszystkich mozliwych dat ale widac ze dziala bardzo dziwnie. Konsultowalem sie z kilkoma osobami w tej sprawie i na ich oko (moje tez) w kodzie jest wszystko ok... Ma ktos jakis pomysl, co moze byc nie tak?
Byłbym wdzięczny za wszystkie sugestie i pomoce
Pozdrawiam
Otóż napotkałem następujący problem przy obsłudze wspomnianego w temacie zegara PCF8583. Godzina obsługiwana jest prawidłowo (stąd też wnioskuje, że metody konwersji BCD <-> DEC są ok). Najpierw zamieszczę kod, później opiszę problem:
Odczyt:
Kod: C / C++
Odczyt wykonywany jest w przerwaniu zewnetrznym, pod które jest podłączona noga INT zegara, w związku z tym odczyt następuje co sekundę.
Teraz zapis:
Kod: C / C++
Efekt: Przy uruchomieniu (bez baterii) mamy oczywiscie godzine 00:00 1/1/2012. Po zmianie godziny na 23:59 (za pomocą UstawGodzineNaRTC) odczyt działa OK, wyswietla mi się godzina 23:59. Po minięciu minuty (nie korzystajac z UstawDateNaRTC, czyli data jest domyslna po uruchomieniu RTC 1/1/2012) data jaka mi sie wyswietla to 0/1/2012... Jeśli w tym momencie znowu ustawie godzine na 23:59 to po minięciu minuty wyswietli się 2/1/2012. Następnie znowu przestawiam godzinę na 23:59 i po minięciu minuty mam 00:00 2/1/2012, a po ponownej takiej operacji jest 4/1/2012 itd itd... Jakby nie obslugiwal dni nieparzystych. Ale jeśli uzyje UstawDateNaRTC i ustawie np 15/10/2012 i godzine 23:59, po minucie otrzymuje 14/10/2012... Nie jestem w stanie sprawdzic wszystkich mozliwych dat ale widac ze dziala bardzo dziwnie. Konsultowalem sie z kilkoma osobami w tej sprawie i na ich oko (moje tez) w kodzie jest wszystko ok... Ma ktos jakis pomysl, co moze byc nie tak?
Byłbym wdzięczny za wszystkie sugestie i pomoce
Pozdrawiam