Course Process

Oprogramowanie zostało przygotowane dla Arduino UNO oraz dla mikrokontrolera ATmega8, ale powinno działać również z innymi wersjami platformy Arduino.

Podstawowe funkcje biblioteki to:

- max7219_init() – inicjacja układu max_7219, wysyła ustawienia dotyczące ilości cyfr, jasności oraz uruchamia SPI w mikrokontrolerze, wywolujemy ją tyle razy ile mamy matryc,

- max7219_odswiez_ekran_4matryce(uint8_t *wsk) – funkcja wysyłająca dane z bufora na matryce, jako argument przyjmuje wskaźnik do tablicy 32elementowej typu uint8_t

- max7219_odswiez_ekran_4matryce(uint8_t *wsk) – to co wyżej, jednak automatycznie neguje bity – odwraca kolory

- przerob_obrazek(uint8_t *buf_wsk, uint8_t *obr) – przyjmuje wskaźnik do bufora do wyswietlenia oraz wskaźnik do tablicy z obrazkiem, aby wyswietlić efekt, trzeba odświeżyc matryce

- czysc_bufor(uint8_t *bufor) – czyści dany bufor

- zapal_piksel(uint8_t numer, uint8_t kolor,uint8_t *bufor) – zapala/gasi wybrany piksel w określonym buforze

Występuja jeszcze funkcje wykorzystujące te powyższe, w przypadku projektu w C nie umieszczone są w pliku main.c:

- zamigaj(uint8_t *wsk) – miga kilka razy danym obrazkiem

- animacja(uint8_t *wsk1, uint8_t *wsk2) – wyświetla naprzemiennie 2 obrazki

- slonko(void) – wyświetla przygotowaną wcześniej animację z 15 klatek

Jak juz wcześniej wspomniałem bardzo ważne jest ułożenie matryc, ponieważ zmienia to całkowicie kolejność odbierania danych przez matryce, jak również kolejność poszczególnych bitów i ich orientacje pion/poziom. Tutaj pojawiają się 2 koncepcje – w podstawowych funkcjach przesyłu, za każdym razem zmieniamy odpowiednio bity i wtedy wysyłamy lub funkcje wyższego poziomu odpowiednio już same w sobie przygotowują zmodyfikowaną tablicę, a funkcje wysyłające w to nie ingerują. Osobiście wybrałem to drugie podejście – przykładem tego jest funkcja przerób_obrazek – przekładam odpowiednie elementy tablicy, aby dostosować je do mojego ułożenia matryc. Gdybym nagle chciał inaczej je ułożyć, zmiany dokonuję tylko w tej funkcji, a te od wysyłania za każdym razem pozostaną takie same.

Dodawanie obrazków.

Wykorzystałem tu program microlcd ze strony: http://hobby.abxyz.bplaced.net/index.php?pid=5&aid=12 znajduje się tam instrukcja do jego obsługi.

Tworzymy tam nowy obrazek 16×16, następnie po narysowaniu eksportujemy jako tablicę wybierając typ zapisu jako nokia3310(Horizontal adressing). Zawartość wklejamy do tablicy w naszym programie i możemy już ją wyświetlać.