Cześć,
na początek witam wszystkich forumowiczów.
Kupiłem niebieska książkę i zacząłem naukę. Na podstawie tutoriali Pana Mirosława ustawiłem środowisko Eclipse i systematycznie w miarę czasu i umiejętności

wykonuje kolejne ćwiczenia. Aktualnie jestem w rozdziale z wyświetlaczem LCD. Uruchomiłem go zgodnie z ksiażką i było ok. Zacząłem się dalej bawić i niestety napotkałem na jeden problem, który nie potrafię sobie wytłumaczyć. Po kolei:
1. Wykorzystuje przerwanie od timera 0 w trybie CTC.
2. W obsłudze przerwania zwiększam tylko zmienną służącą do odmierzania czasu. Zmienna jest globalna.
3. W pętli głównej (nieskończonej) porównuje wartość zmiennej z wartością odpowiadającą 10s. Jeżeli odmierzony zostaje czas zmieniam stan diody LED.
Tu pojawia się efekt, którego nie potrafię sobie wytłumaczyć:
W wersji podstawowej programu (ver. 1) nie widzę, żeby dioda migała.
W wersji drugiej (ver. 2) do której dołożyłem wyświetlanie zmiennej do odmierzania czasu, żeby widzieć czy coś się dzieje w pętli wszystko działa. Dioda miga. Poniżej zawarłem kod ver. 1. Widać w nim także funkcje wyświetlania zmiennej z ver. 2 (zakomentowane w petli głównej).
W moim odczuciu ver. 1 powinna działać. Program z pętli głównej powinien być zawieszony, powinna nastąpić obsługa przerwania i układ powinien wrócić do pętli nieskończonej.
Ver. 1:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.