Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Rozwiązano] [MSP430G2452] [C] Obsługa wyświetlacza graficznego z użyciem I2C

toann 12 Lut 2018 21:53 792 5
  • #1 12 Lut 2018 21:53
    toann
    Poziom 4  

    Witam,
    Usiłuję napisać program, który umożliwiłby wyświetlanie danych (liczb) na wyświetlaczu graficznym EA DOGXL160-W (driver UC1610) za pośrednictwem I2C. Udało mi się zapewnić obsługę wyświetlania wszystkich pixeli oraz czyszczenia ekranu, nie potrafię sobie poradzić z wyświetlaniem czegokolwiek pomiędzy - mój kod albo nie mieści się w pamięci mikrokontrolera, albo nie działa. Nie mogę już zmienić ani mikrokontrolera, ani wyświetlacza, ani interfejsu. Czy jest szansa na pogodzenie tych danych?

    Tablica fontów jest wprost z udostępnionych przez EA przykładów dla MSP, próbowałam zaadaptować podany kod, ale nie mieści się w pamięci.

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 5
  • Pomocny post
    #2 12 Lut 2018 22:05
    grko
    Poziom 33  

    Na początek dodaj słowo kluczowe const do definicji tablicy z fontami:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Jam masz jakiś normalny kompilator to powinien ta tablicę umieścić w pamięci programu, której masz zapewne więcej.

    0
  • #3 21 Lut 2018 11:51
    toann
    Poziom 4  

    Dodanie "const" pomogło, kod zmieścił się w pamięci. Kiedy już się zmieścił, okazało się, że jednak I2C nie działało, dzisiaj udało mi się to naprawić. Teraz właściwie wróciłam do punktu wyjścia - działa I2C, jestem w stanie wyświetlić jednocześnie wszystkie piksele oraz zresetować wyświetlacz (gasząc piksele), nie jestem w stanie wykonać nic pomiędzy.

    0
  • #4 21 Lut 2018 14:32
    JacekCz
    Poziom 36  

    na marginesie: przesłanianie nazw standardowych funkcji w C jest BARDZO złą praktyką (tu: write - choć w tym pojedynczym przypadku może to nie być problemem).
    delay może się zredukować do zera itd...
    Prawdopodobnie jest tam wiele ostrzeżeń kompilatora.

    0
  • #5 22 Lut 2018 08:02
    toann
    Poziom 4  

    W aktualnej wersji programu nie występują już nazwy typu "write", do każdej dodałam przyrostek, np. "writeLCD" <- tak już może zostać? Ostrzeżenia dotyczą jedynie braku obsługi przerwań (np. "Interrupt vector NMI does not have an interrupt handler routine").

    0
  • #6 09 Mar 2018 10:11
    toann
    Poziom 4  

    Rozwiązałam, stworzyłam własną tablicę fontów ograniczoną do znaków, które potrzebuję.

    0