mokrowski napisał(a):
Rzeczywiście napisałeś że Atmega162, przepraszam umknąło mi....
Nie rozumiem intencji init_leds() gdzie LED_PORT jest zerowany a później ,,tłuczesz" 0xFF na port w przerwaniu... O co tu chodzi?
Kto czyta tę zmienną k którą tak pracowicie inkrementujesz i zerujesz w przerwaniu?
Proszę podziel kod na oddzielne pliki gdzie klawiatura będzie miała plik *.c *.h a wyświetlacze segmentowe oddzielne. Wtedy będzie widać intencje...
NIestety jestem ,,upierdliwcem" co do elegancji kodu
Ma być coś w stylu init_led_port(), init_led_timer(), init_key_port(), init_key_timer(). A w main.c tylko użycie... Już część masz ale reszta przemieszana.
Do oddzielnych plików i wiele się wyjaśni.
Rozumiem że chcesz sprawdzić czy działa timer2? Jeśli tak i ma zamrugać diodą/diodami to zmień kod na:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wtedy będziesz wiedział czy przerwania timer2 pracują.
Cześć.
Skupiłeś na elemencie kodu, który nie działał, a 0xFF umieściłem po to by sprawdzić, czy w ogóle następuje procedura przerwania. Inicjalizacja diod jest śmieszna, ale chciałem przećwiczyć ten element poprzez funkcję, która nie zwraca wartości. Dobrze zwrócić uwagę na nazwy zmiennych, funkcji, tak jak to pokazałeś w swoim komentarzu. Masz rację odnośnie elegancji kodu, gdyż taki kod czyta się dużo łatwiej i analizuje. Obiecuję, że postaram się nad tym popracować. Zmienna k miała służyć do zliczania ilości przerwań i na jej podstawie wyliczyć, jakąś przerwę czasową. Na pewno jej użyję, ale póki, co skupiam się na wykorzystaniu sprzętowych zasobów mikroprocka i sprawdzam, czy blokuje to program. Ot tak, jak dziecko sprawdza, czy płomień parzy
Odnośnie tego błędu, byłem pewny, że wpisałem OCIE2, a tymczasem....
Dziękuję za wszystko.