Chciałem się poradzić i prosić o pomoc ponieważ mam taki oto problem.
Mam zbudowany system mikroprocesorowy (układ główny wraz mikrokontrolerem atmega32 + układ wyświetlacza diodowego - tak jak na rys. poniżej). Układ z mikrokontrolerem ma za zadanie tak sterować wyświetlaczem aby wyświetlić na nim ciąg znaków (10 znaków). Dane do wyświetlenia są zapisane w wewnętrznej pamięci mikrokontrolera (EEPROM).
Wyświetlacz stanowi 10 modułów matryc LED o organizacji 5x8 (układy o wspólnej katodzie).
Mój problem jest związany z programową obsługą wyświetlacza.
Wiele na ten temat czytałem...sterowanie w moim projekcie ma wyglądać tak:
1) wiersze anod są sterowane z wyjść PA0-7 atmegi32 poprzez stopień wzmacniający udn2981. To właśnie na te wyjścia będę "wystawiał" odpowiednie sygnały.
2) kolumny katod są z kolei sterowane poprzez interfejs SPI procka i poprzez rejestry przesuwne szeregowo-równoległe. To właśnie dzięki tym sygnałom będę wybierał kolumnę która ma się świecić. Przykładowo podając "0" będę je następnie przesuwał poprzez poszczególne rejestry aż do wybranej kolumny którą chcę zaświecić.
Z materiałów które dotychczas udało mi sie znaleźć wyczytałem że do sterowania jest potrzebny programowy bufor w którym będą przechowywane sygnały sterujące. Czy wobec tego muszę stworzyć w programie bufor na sygnały sterujące kolumnami i osobny bufor na sygnały dla wierszy?
Rozumiem, że aby wyświetlanie było płynne poszczególne kolumny muszę wyświetlać z częstotliwością ok 100 Hz by było to niezauważalne dla ludzkiego oka. Czy to 100 Hz wykorzystujemy w programie w momencie, gdy konfigurujemy licznik procka, który odmierza upływający czas pomiędzy poszczególnymi przerwaniami w obsłudze wyświetlacza?
Tabelę znaków (kolumny matrycy składające sie na znak) oraz odczyt z pamięci EEPROM już mam wykonaną.
Proszę o pomoc i dziękuję za wszelkie wskazówki