Ogólnie przerwania chodzą, ale problem pewnie w tym, że w obsłudze przerwania od timera chce wyświetlić
tekst na lcd (hd44780). LCD używam bez wykorzystania linii busy, więc wszystkie komendy idą na delayach zrealizowanych przez timer.
Zaloguj się, aby zobaczyć kod
Więc stawiam na jakiś konflikt przerwań, chociaż chodzą w innych VIC, bo delay_ms chodzi
na VIC1, a RTC robie na VIC0.
O tak:
Zaloguj się, aby zobaczyć kod
Jak widać zakomentowałem wysyłanie tekstu. No i teraz działa. A jak w obsłudze przerwania
od RTC ma się wysłać tekst na LCD (a tam troche opóźnień jest na VIC1), to sie sypie i nie działa.
Teoretycznie, moge zrobić w while(1) wypisywanie na lcd tego, co w zmiennych h,m i s odczytam w funkcji przerwania od RTC, ale to chyba niezbyt eleganckie w pętli nieskończonej ładować wciąż dane do LCD...
Ale tak czy inaczej stawiam na to, że w mojej idei jest błąd, że obsługa przerwania od RTC
zawiera czasochłonną instrukcję ( lcd_text(m_text)

w której siedzą delay'e...i to wszystko tak nie może być. Przerwanie od RTC to sczytanie czasu z rejestru do zmiennych i czym prędzej ucieczka z przerwania...A obsługa wyświetlania tych zmiennych na LCD to zrobić inaczej. Ale jak? Trzecie przerwanie co 1s czy we while sprawdzanie flagi zmiany np. sekund i jak się zmieni to wyświetlić nowy czas.
Przepraszam...głośno sobie myślę...