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

[AVR-GCC] Graficzny wyświetlacz LCD, algorytmy sterowania.

avr_elektronik 13 Paź 2009 23:11 6624 23
  • #1 7125784
    avr_elektronik
    Poziom 14  
    Witam,
    od pewnego czasu buduję odtwarzacz MP3. Co do obsługi karty SD i dekodera nie mam problemu, ale nie wiem jak zbudować/zaprojektować interfejs graficzny playera. Do dyspozycji mam LCD 128x64 na sterowniku KS0108. Kompletnie nie wiem jak się za to zabrać, tzn. jaki algorytm zastosować do obsługi GLCD, czy użyć przerwań timera, rysować w pętli głównej ..., kolejne pytanie jak odświeżać ekran. Proszę o wymianę doświadczeń w/w zakresie głównie zależy mi na informacji jakich zasad muszę się trzymać przy pisaniu programów zawierających GUI(mam na myśli proste menu, może jakiś analizator widma).
    Pozdrawiam
  • #3 7125924
    avr_elektronik
    Poziom 14  
    OK. Dzięki na pewno link się przyda, ale na razie potrzebuje ogólnych informacji dotyczących struktury programu tj. jak rysować, kiedy odświeżać ekran i docelowo jak wykonać ładne menu :). Nurtuje mnie pytanie jak wykonać analizator widma (narazie pomijam kwestię sprzętową, skupiam się na wizualizacji danych), jak odświeżać słupki, tzn. czy za każdym razem rysować wszystko od nowa, bądź może jakoś inaczej to zrealizować.
  • #4 7126064
    Konto nie istnieje
    Poziom 1  
  • #5 7126629
    szelus
    Poziom 34  
    Tochę OT:
    atom1477 napisał:
    Dzięki temu nie było by zbyt dużego efektu Thearingu (Czy jak tam to się zwie ;p W każdym razie efektu migotania) na LCD.

    tearing - ang. tear - drzeć, przedzierać, bo ramka obrazowa składa się z dwóch (potencjalnie wiecej) częsci (uskok). Efekt pisania do bufora obrazu bez synchronizacji z wyswietlaniem.
    W każdym razie uwaga bardzo słuszna.
  • #6 7126694
    Konto nie istnieje
    Poziom 1  
  • #7 7128600
    avr_elektronik
    Poziom 14  
    To już mam jakieś informacje. Jeśli dobrze zrozumiałem to muszę unikać czyszczenia całego wyświetlacza. Teraz mam kolejne pytanie, zakładając że, mam już tło w moim odtwarzaczu i chcę np. scrolować tytuł utworu, jak to zrobić? Czyścić fragment ekranu np. spacjmi i cyklicznie wklejać w to miejsce stringa?

    Czy ktoś może mi w skrócie powiedzieć jak zbudować menu powiedzmy jak w starszych telefonach (N3210,N3310,N6210).
  • #8 7128817
    Konto nie istnieje
    Poziom 1  
  • #9 7129036
    avr_elektronik
    Poziom 14  
    Dzięki atom1477 za radę, faktycznie nie muszę czyścić bo jeśli zdefiniuje znaki 5x8, to choć znak ma "białe" pole to zastąpi to co było wcześniej.

    Odnośnie menu nie potrzebuje niczego wyszukanego, prosta lista po której będę mógł się przesuwać(podświetlać) i wchodzić do pod menu.
  • #10 7133965
    Konto nie istnieje
    Poziom 1  
  • #11 7146540
    avr_elektronik
    Poziom 14  
    Na chwilę obecną chcę opanować zasadę menu a później będę myślał o adaptacji do playera.
  • #12 7146548
    Konto nie istnieje
    Poziom 1  
  • #13 7150362
    avr_elektronik
    Poziom 14  
    Tak, masz rację. Z tym, że jedno rozwiązanie może być lepsze lub gorsze (tzn. wydajniejsze).
  • Pomocny post
    #14 7150698
    Konto nie istnieje
    Poziom 1  
  • #15 7171227
    avr_elektronik
    Poziom 14  
    OK. dzięki za pomoc w przyszłym tygodniu zabieram się z pisanie.
  • #16 7171870
    tmf
    VIP Zasłużony dla elektroda
    Atom: strasznie to skomplikowales, zrobienie menu jest naprawde proste. Jako dowod pokaze ci implementacje wielopoziomowego menu na LCD graficznym, ze sterowaniem encoderem, roznymi funkcjami typu podswieltlenie aktywnej pozycji, blokowanie danej opcji, stosowanie separatorow - http://idom.svn.sourceforge.net/viewvc/idom/LCDGUI/ - zobacz w include i src klasy TMFMenu.
    To max wypasione menu, proste zrobione na callbackach to de facto zwykla lista jednokierunkowa, pare linii kodu.
  • #17 7182470
    avr_elektronik
    Poziom 14  
    Dzięki tmf, a masz może jakieś screeny tego menu?
  • #18 7183105
    tmf
    VIP Zasłużony dla elektroda
    Jak przejrzysz to repozytorium to tam jest aplikacja LCDDesigner nad ktora pracuje - symuluje ona na PC dzialanie tej biblioteki, mozna wstawic menu i sobie zrzucic screenshota.
  • #19 7187440
    avr_elektronik
    Poziom 14  
    Faktycznie znalazłem LCDDesigner, ale nie ma pliku wykonywalnego.
    Starałem się to skompilować za pomocą CodeBlock, ale niestety nie udało mi się.
  • #20 7187500
    tmf
    VIP Zasłużony dla elektroda
    Jest zalezna od Qt, musisz sciagnac je w wersji >4.5.x. Wez pod uwage, ze to repozytorium, nie spodziewaj sie, ze pojdzie latwo :) W razie czego moge podeslac fotki.
  • #21 7190634
    avr_elektronik
    Poziom 14  
    No niestety nadal nie udało mi się skompilować, zainstalowałem Qt, ale nadal otrzymuje taki komunikat
    Cytat:
    "LCDDesigner - Release" uses an invalid compiler. Skipping...
    Nothing to be done.

    tmf <- może dasz radę przesłać skompilowaną aplikację?
  • #22 7190733
    tmf
    VIP Zasłużony dla elektroda
    Uzywam gcc pod linuxem, albo Mingw pod windowsem. Jesli masz inny to zapewne musisz zrobic qmake w karalogu w ktorym znajduje sie plik projektu - .prj. Skapilowana aplikacje mam, ale jak ja przeslac? Zreszta, zeby z tego skorzystac musisz dokonac zmian w niektorych procedurach - umiescic kod w C++ majacy generowac to co chcesz uzyskac na AVR.
  • #23 7191151
    avr_elektronik
    Poziom 14  
    Udało się, ale teraz nie wiem jak obsługiwać LCDDesigner tzn. jak stworzyć menu:)
  • #24 7873491
    avr_elektronik
    Poziom 14  
    Może jest ktoś w posiadaniu zastawu znaków innych niż 5x8 ?
REKLAMA