Witam, stworzyłem na płytce stykowej układ, gdzie podłączyłem przyciski, LCD hd47780, rtc ds1307 i buzzer. Korzystam z bibliotek do wyświetlacza od "radzia", TWI od p. Mirka oraz ze znalezionej na tym forum biblioteki do RTC. Napisałem szybki program, który wyświetla godzinę w formie hh:mm:ss na ostatnich polach pierwszej linii. Dodatkowo dodałem przerwanie, którego zadaniem jest miganie diodą. Program poprawnie pokazuje godzinę, ale raz na jakiś czas (nieokreślony) zawiesza się. Godzina przestaje się odświeżać, ale dioda dalej miga. Tracę działanie całego kodu w pętli głównej ( jak np. dodam tam buzzer pod przycisk po zawieszeniu nie reaguje na przycisk ). Jaka może być tego przyczyna ? W załączeniu dołączam schemat układu (zgadza się wyświetlacz oraz rtc, przyciski podłączone są w innych miejscach).
Kod programu:
Kod do biblioteki RTC ds1307
Biblioteka do wyświetlacza oczywiście edytowane porty pod mój układ pobrałem ze strony radzio.dxp.pl - Sterowanie w trybie 4-bitowym z odczytem flagi zajętości z dowolnym przypisaniem linii sterujących.
Biblioteki do TWI pobrane ze strony p.Mirka w dziale uaktualnienia do DVD.
![[Atmega8][hd44780][rtc] - Zawieszanie się programu. Działa tylko przerwanie. [Atmega8][hd44780][rtc] - Zawieszanie się programu. Działa tylko przerwanie.](https://obrazki.elektroda.pl/2493835600_1454428954_thumb.jpg)
Kod programu:
Kod: C / C++
Kod do biblioteki RTC ds1307
Kod: C / C++
Biblioteka do wyświetlacza oczywiście edytowane porty pod mój układ pobrałem ze strony radzio.dxp.pl - Sterowanie w trybie 4-bitowym z odczytem flagi zajętości z dowolnym przypisaniem linii sterujących.
Biblioteki do TWI pobrane ze strony p.Mirka w dziale uaktualnienia do DVD.