KAMAMI ZL31ARM: OLED w SmartSwitch’u i STM32F103

Zapis do pamięci obrazu sterownika wyświetlacza polega na wysłaniu danych przez interfejs SPI podczas gdy linia D/C ma stan wysoki. Ponieważ sterownik jest przystosowany do pracy również z większymi wyświetlaczami jego pamięć jest większa niż wymagana dla 3072 pikseli (64×48), umiejscowienie widocznego na wyświetlaczu obrazu w pamięci sterownika widać na rysunku 4.

 

Rys. 4. Obszar pamięci kontrolera OLED widoczny na wyświetlaczu

Rys. 4. Obszar pamięci kontrolera OLED widoczny na wyświetlaczu

 

 

Zanim zaczniemy zapisywać do pamięci sterownika obraz musimy poinformować sterownik do jakiego okna mają trafić dane, służą do tego instrukcje:

  • 0x15, następnie wysyłamy numery pierwszej i ostatniej kolumny okna
  • 0x75, następnie wysyłamy numery pierwszego i ostatniego wiersza okna

Aby zapisać cały ekran przycisku ISC15ANP4 musimy wysłać sekwencje 0x15, 0x10, 0x4F i 0x75, 0x0, 0x2F. Ta operacja jest realizowana przez funkcję ISC15ANP4_SetRangeToFullScreen

 

 

Rys. 5. Format zapisu koloru pojedynczego piksela

Rys. 5. Format zapisu koloru pojedynczego piksela

 

 

Po ustaleniu okna możemy przystąpić do wysłania obrazu do wyświetlenia. Kolor każdego piksela jest określony przez dwa bajty (format RGB 565 – rysunek 5). Przykładowa aplikacja wyświetla na zmianę dwie bitmapy zapisane w tablicach cortex i isc15anp4, zmiana wyświetlanego obrazu następuje po naciśnięciu przycisku, nowa bitmapa jest „wskrolowywana” na wyświetlacz od prawej strony, funkcja realizująca tę operację wygląda następująco:

 

 

 

Parametry from i to są wskaźnikami początków tablic z bitmapami odpowiednio: początkową i końcową. W tej funkcji ze względu na dobranie kroku przesunięcia o wartości 5 (czyli kolejna klatka animacji prezentuje bitmapy przesunięte o 5 pikseli w lewo w stosunku do poprzedniej) na końcu wywołujemy funkcję ISC15ANP4_DrawScreen, która rysuje bitmapę końcową (jest to konieczne, bo przy kroku o wartości 5 nie dojdziemy do wartości 63).

Do pobrania

O autorze