Witam!
Mam problem z prostym kodem. Jest to banalny program na ATtiny2313A, który zlicza czas - sekundy, minuty, godziny, dni. Oczywiście jest to niedokładne, bo oparte o timer w procku, ale nie o dokładność tu chodziło.
Pamiętam, że poprzednio z zapisywaniem i odczytywaniem danych z EEPROM nie miałem żadnych cyrków. A teraz takie dziwactwa.
W EEPROM zapisuję sobie ilość włączeń urządzenia - inkrementuję licznik podczas każdego włączenia zasilania. Oprócz tego zapamiętuję stan diody (świeci, nie świeci).
Stan diody zawsze się zgadza, jeśli wyłączyłem z diodą włączoną, to po włączeniu świeci i na odwrót.
Niestety licznik mi wariuje. Pierwsze włączenie się zgadza (1), a później zazwyczaj jest np. 202, 203 itd. Raz zaczęło zliczać w dół, no dziwy. Coś pewnie chrzanię w kodzie, proszę mi to wytknąć, wszystko wrzucam poniżej.
Zapisywanie i odczytywanie z EEPROM realizuję poprzez struktury, jak Mirek przykazał

plik main.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
common.h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
common.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.