Witam,
mam problem ze znalezieniem błędu w wykonywaniu trzeciego ćwiczenia z niebieskiej książki.
Programuje mikrokontroler Atmega88p z ustawionym wewnętrznym oscylatorem 8MHz. W Atmedze przestawiłem fusebity, a w projekcie wybrałem zadaną częstotliwość i programator.
Korzystam z prostego programatora SKT200 własnej roboty ( schemat ->
http://www.qsl.net/ba1fb/avrisp.gif ) i środowiska programistycznego Eclipse Indigo z wgranym pluginem avr wraz z najnowszym toolchainem Atmela.
Układ wyświetlacza LED siedmosegmentowego zbudowałem w oparciu o schemat z ATB lutując go na "pająka" i podłączyłem taśmą do płytki stykowej z Atmegą.
Na płytce stykowej pozostawiłem przyciski i diody led z poprzednich ćwiczeń, które udało mi się wykonać bez większych problemów. Nie montowałem kwarcu narysowano na schemacie. Całość zasilam z zewnętrznego zasilacza opartego o stabilizator LM7805 i transformator 12V 5VA.

Zamiast tranzystorów BC807 użyłem zmieników BC327 w wersji do montażu przewlekanego z grupy 40.
Kod programu przepisałem z niebieskiej książki dodając tabele z cyframi z programu MkAvrKalkulator i przerabiając pod swój mikrokontroler zgodnie z jego Datascheetem.
Main.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
D_LED.h
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
D_LED.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Objawy problemu. Brak multipeksowania led. Na wyświetlaczu po wgraniu programu widnieją cztery dziewiątki. Gdy odłączę anody z płytki stykowej, wyświetlacz nadal wyświetla swoje cztery dziewiątki. Poprawnie wyświetlają się inne segmenty na wszystkich cyfrach po wgraniu programu testowego, który bez pomocy przerywań (_delay_ms(1000);) co sekundę wyświetlał na wszystkich czterech cyfrach jednocześnie kolejno ten same znaki zdefiniowane w tabelce.
Proszę o wyjaśnienie mi na którym etapie popełniłem błąd. Za wszelkie odpowiedzi szczerze dziękuje.
Pozdrawiam
Łukasz