STM32Butterfly2: obsługa LCD z telefonu Nokia 6100/6610

Natomiast listing programu głównego przedstawia się następująco.

 

W pierwszym kroku przeprowadzana jest konfiguracja linii joysticka. Operacja ta odbywa się poprzez włączenie zegara dla portu GPIO, do którego podłączone są linii joysticka (ustawienie bitu w rejestrze RCC->APB2ENR), oraz konfiguracji linii jako wejścia PULLUP. Za konfigurację linii jako wejścia odpowiada funkcja io_config_ext, jako pierwszy parametr przyjmuje ona nazwę portu, drugi parametr określa konfigurowane linie, trzeci parametr czy linie są wejściowe czy wyjściowe, ostatni parametr określa tryb działania. Niezbędnym w konfiguracji linii joysticka jest podciągnięcie ich do potencjału dodatniego, które realizowane jest przez funkcję io_set_clr_mask. Funkcja ta wymaga podania trzech parametrów, pierwszy z nich określa nazwę portu, drugi określa stan ustawianych linii (bitowa wartość ‘0’ na danej pozycji zeruje linię, bitowa wartość ‘0’ na danej pozycji ustawia w stan wysoki linię), ostatni parametr jest maską blokującą zmianę stanó1) tylko do wskazanych linii.

W kolejnym kroku realizowana jest konfiguracja licznika SysTick, za działanie to odpowiada funkcja time_init(). Działanie jej sprowadza się do określenia priorytetu przerwania pochodzącego od licznika SysTick, określeniu częstotliwości występowania przerwania oraz włączenia licznika.

Następnie, poprzez wywołanie funkcji , przeprowadzana jest inicjalizacja wyświetlacza modułu KAmodTFT2. Listing funkcji został przedstawiony poniżej.

 

W pierwszym kroku działania funkcji włączany jest zegar dla portów obsługującego linie transmisji oraz przeprowadzenie konfiguracji używanych linii przy pomocy funkcji io_config. Po przeprowadzeniu konfiguracji następuje ustawienie odpowiednich stanów na liniach SCE, SCK i MOSI. Wykonywany jest także reset wyświetlacza poprzez początkowe ustawienie linii RES w stan niski, a następnie przełączenie, po wykonaniu opóźnienia, w stan wysoki. Opóźnienie zostało zrealizowane poprzez wykonanie pętli for określoną liczbę razy w ramach, której wywoływana jest operacja nop().

Następnym działaniem jest wysłanie do wyświetlacza komend, które w pierwszej kolejności wybudzają go, wyłączają inwersje, ustawienie 12-bitowego formatu określającego kolor danego piksela (4 bity na każdy z kolorów) oraz określenie żądanego dostępu do pamięci wyświetlacza (parametr ten określa odbicie obrazu w poziomie i w pionie oraz sposób inkrementowania kolejnych komórek). Po wysłaniu powyższych poleceń następuje zatrzymanie programu na pewien czas, po którym wysyłana jest komenda włączająca wyświetlanie obrazu na wyświetlaczu.

Do pobrania

O autorze