logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[A88] [A88][KS0108] Problem z pozycjonowaniem pikseli na wyświetlaczu KS0108

eiliat 27 Mar 2012 22:39 1122 3
REKLAMA
  • #1 10727320
    eiliat
    Poziom 15  
    Witam,

    Bawię się wyświetlaczem KS0108 oraz kodem z tej książki:
    Link

    Tutaj dostępny jest cały kod, w folderze R18:
    Link

    Wszystko ładnie mi się inicjalizuje przez taki kod:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    I buduje prostą pętlę imitującą pasek ładowania:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Wszystko niby ok ale piksele zapalają się w KS0108 - nr 2 (H1) CS2.
    Jest funkcja do zmiany pamięci niby istnieje GLCD_EnableController ale użycie jej nic nie daje.
    Jak ustawię pozycję na np:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Czyli przepełnienie pamięci do z H1 przeskakuje do H0. Czy nie można zrobić, tak żeby H0 było domyślnym?

    Cały mój program:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Reszta plików w linku powyżej.
  • REKLAMA
  • #2 10727986
    xamrex
    Poziom 28  
    Najlepiej napisać do autora, użytkownika elektrody, pod nickiem tmf :)
  • REKLAMA
  • Pomocny post
    #3 10728539
    tmf
    VIP Zasłużony dla elektroda
    Jeśli ci się zapalają H0 i H1 w złej kolejności to znaczy, że masz na odwrót podłączone linie CS dla poszczególnych kontrolerów. Najprościej jest je więc zmienić. Drugą możliwością jest zmiana warunku w funkcji GLCD_EnableController, z if(controller==0) na if(controller==1). Samo wywoływanie tej funkcji we własnym kodzie nie ma sensu (stąd też nie jest ona eksportowana z pliku źródłowego), gdyż jest wewnętrznie wywołwana m.in. przez SetPixel, więc twoje ustawienie jest i tak zmieniane. Poza tym twoja pętla for wygląda co najmniej dziwnie. Zamiast i++ daj od razu i+3 i skasuj ostatnią linię (i=i+2).
  • #4 10729446
    eiliat
    Poziom 15  
    tmf napisał:
    Jeśli ci się zapalają H0 i H1 w złej kolejności to znaczy, że masz na odwrót podłączone linie CS dla poszczególnych kontrolerów.


    Przed chwilą podłączyłem do nowego procka, M32 i efekt był taki sam - H1 był domyślny. Zamiana w kodzie rozwiązała problem! Dzięki bardzo!
REKLAMA