[MBED] STM32 i SSD1306 – sterowanie dwukolorowym OLED [2]

Po każdym wyświetleniu jednego znaku na podstawie informacji o maksymalnych współrzędnych ekranu wyświetlacza (SSD1306_WIDTH i SSD1306_HEIGHT), oraz wartości argumentu size są wyliczane współrzędne kolejnego znaku. Jeżeli kolejny znak nie zmieści się w całości w linijce, to tekst jest automatycznie przenoszony na początek kolejnej linijki (CR, LF). Efekt działania krótkiego fragmentu programu z listingu 11 pokazano na fotografii 9.

List. 11. Wyświetlanie w trybie tekstowym

Fot. 9. Wyświetlanie testowych ciągów znaków fontami o wysokości 16 i 12 pikseli
Fot. 9. Wyświetlanie testowych ciągów znaków fontami o wysokości 16 i 12 pikseli

Wyświetlanie bitmap

Każda czcionka wyświetlana w trybie tekstowym jest bitmapą rysowaną na ekranie. Te bitmapy – wzorce znaków umieszczane są w tablicy generatora znaków i mają jednakowe wymiary. Jednak często zachodzi konieczność wyświetlania bitmap o różnych rozmiarach. Pewnym problemem jest konwertowanie monochromatycznych. Ja używam prostego programu bmp2c.exe potrafiącego konwertować monochromatyczne mapy o niewielkich rozmiarach na tablicę w języku C. Kiedy już mamy skonwertowana bitmapę, to procedura jej wyświetlania jest stosunkowo prosta – listing 12.

List. 12. Wyświetlenie bitmapy

Fot. 10. Przykładowa bitmapa wyświetlona na OLED
Fot. 10. Przykładowa bitmapa wyświetlona na OLED

Na fotografii 10 pokazano wyświetloną bitmapę, a na fotografii 11 kilka małych bitmap – ikon wyświetlanych w żółtym obszarze matrycy.

Fot. 11. Przykładowe ikonki
Fot. 11. Przykładowe ikonki

O autorze