Witam, mam problem z komunikacją po TWI z zegarem RTC DS1340. Program działa dobrze, ale co jakiś czas (kompetnie losowy, potrafi chodzić kilka dni bez błędów, a czasem resetuje się co chwilę) zawiesza się i resetuje go watchdog (ustawiony na 0,5s).
Doszedłem do miejsca w którym program się wysypuje - na powrocie z funkcji twiread().
Funkcja read_RTC() jest wywoływana w głównym programie co 0,25s. Prędkość TWI ustawiona na 80kHz, czyli poniżej max dla DS1340 (100kHz).
Na szynie TWI jest jeszcze pamięć FRAM i układ QT60160.
Nie potrafię dojść o co chodzi - rozumiem gdyby program zatrzymywał się na while(), ale na return()?
Doszedłem do miejsca w którym program się wysypuje - na powrocie z funkcji twiread().
Kod: C / C++
Kod: C / C++
Funkcja read_RTC() jest wywoływana w głównym programie co 0,25s. Prędkość TWI ustawiona na 80kHz, czyli poniżej max dla DS1340 (100kHz).
Na szynie TWI jest jeszcze pamięć FRAM i układ QT60160.
Nie potrafię dojść o co chodzi - rozumiem gdyby program zatrzymywał się na while(), ale na return()?