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

Animacje graficzne na wyświetlaczu alfanumerycznym

Ryazard 23 Lip 2007 21:26 8051 6
REKLAMA
  • Animacje graficzne na wyświetlaczu alfanumerycznym

    Animacje graficzne na wyświetlaczu alfanumerycznym
    http://www.vega-xp.com/ini/files.zip

    Animacje graficzne na wyświetlaczu alfanumerycznym

    Animacje graficzne na wyświetlaczu alfanumerycznym ze sterownikiem HD44780 wcale nie są trudne do osiągnięcia.
    Zazwyczaj definiujemy zestaw znaków CG RAM, aby je potem wyświetlić.
    Okazuje się, że pamięć CG RAM możemy również modyfikować dla znaków, które zostały wpisane wcześniej. Cała zawartość wyświetlacza zostanie zmieniona automatycznie!
    Dzięki użyciu makr pisanie tego typu procedur staje się znacznie prostsze, a całe oprogramowanie jest przejrzyste i łatwe do zrozumienia.
    W przykładowym kodzie użyłem procesora AT90S8515 (ze starej karty FUN) oraz Atmega16. Pliki są zapisane w formatach "hex" oraz "bin" dla różnych programatorów. Dołączyłem również pliki źródłowe pod darmowe środowisko AVR Studio fimy ATMEL.

    Fajne? Ranking DIY
    O autorze
    Ryazard
    Poziom 11  
    Offline 
    Ryazard napisał 13 postów o ocenie 2. Jest z nami od 2005 roku.
  • REKLAMA
  • #2 4108971
    markosik20
    Poziom 33  
    Nie zmienia to faktu że naraz można zmienić i wyswietlić 8 dowolnie skonfigurowanych znaków co powoduje że grafika jest dosyć "skąpa". Niestety multipleksowanie też opada bo taki LCD jest za wolny.
  • REKLAMA
  • #3 4109113
    HONDAS
    Użytkownik obserwowany
    ZA wolny ? Ale zeby osiągnąć zamierzony cel wydadje sie wystarczajjący.
    Moderowany przez zdzich42:

    Jesteś pewien, że piszesz po polsku?

  • #4 4109178
    Ryazard
    Poziom 11  
    To prawda, możemy wyświetlić jedynie 8 nowych znaków w jednej chwili. W formacie 5x10 jest jeszcze gorzej – jedynie 4 znaki.
    Każdy znak możemy jednak powielać dowolną ilość razy zapełniając nawet całą matrycę wyświetlacza.
    Nie zgadzam się natomiast, że sterownik jest za wolny do tego rodzaju animacji.
    W prezentowanym rozwiązaniu wykorzystujemy wewnętrzny Timing Generator sterownika HD44780. Zapewniam, że jest on wystarczająco szybki.
    Aby się o tym przekonać wystarczy następująco zmodyfikować linię nr. 49 w pliku vega-xp.asm:
    delay1ms 50, 1 ; delay between sessions
    Po kompilacji uzyskamy szybkość powielania sesji 50ms = 20 półobrazów na 1s!
    Wyświetlacz może pracować z jeszcze większą szybkością, jednak nie wydaje mi to celowe.
    Jedyne ograniczenie stanowi szybkość transmisji danych do wyświetlacza ze względu na konieczność buforowania szyny równoległej.
  • REKLAMA
  • REKLAMA
  • #6 4118418
    VSS
    Poziom 21  
    markosik20 napisał:
    Niezrozumieliśmy się :wink: Chodziło mi o to że LCD jest za wolny do multipleksowego wyswietlania np: dużych cyfr lub grafiki która potrzebuje więcej niż 8 danych do poprawnego wyświetlenia.

    https://www.elektroda.pl/rtvforum/download.php?id=248137


    to zależy od LCDka, spotkałem się z slimaczo wolnymi - wyswietlacze od srebrnych URMETÓW do zadziwiająco szybkich - LCD od telefonów stacjonarnych Ericsson. trzeba pokombinować, na pewno znajdizesz odpowiednio szybki.
  • #7 4121771
    Ryazard
    Poziom 11  
    markosik20 napisał:
    Niezrozumieliśmy się :wink: Chodziło mi o to że LCD jest za wolny do multipleksowego wyswietlania np: dużych cyfr lub grafiki która potrzebuje więcej niż 8 danych do poprawnego wyświetlenia.

    https://www.elektroda.pl/rtvforum/download.php?id=248137


    Jeżeli chodzi o multipleksowanie to jego zasada działania, jak sama nazwa wskazuje, polega na zwielokrotnianiu tych samych, ale różnie definiowanych znaków.
    Logicznie myśląc, seria znaków zdefiniowanych przez użytkownika zostaje wyświetlona na pewnych pozycjach matrycy. Następnie znaki zostają inaczej zdefiniowane i zapisane na innych pozycjach. Cały proces może się powtarzać w dwóch lub więcej cyklach. Nasuwa się jednak pytanie - co zostało wpisane na poprzednie pozycje? Bo jeżeli nic to uzyskamy efekt taki sam jak w animacjach! Przypuszczam, że aby ukryć zmianę grafiki nowo definiowanych znaków – miejsca te zapełniono spacjami. Takie rozumowanie pozwala przypuszczać, że grafika znaku na matrycy składa się z półobrazów, a sam znak jest widoczny przez 50% czasu dla 2 cykli, 33,(3)% dla 3 cykli, 25% jeżeli multipleksowanie odbywa się w czterech cyklach itd. Widoczność znaków będzie więc coraz gorsza i wcale nie zależy to od szybkości wyświetlacza. Jeszcze gorzej jeżeli użyto instrukcji Clear Display (bardzo długi czas wykonywania). Sam pomysł jest dobry i myślę, że gdyby proces odbywał się w 2 cyklach efekt byłby wtedy najlepszy. Z ilości znaków wynika jednak, że cykli jest więcej...

    Jak wykonać bardzo prosty zestaw uruchomieniowy zaprezentowałem tu: https://www.elektroda.pl/rtvforum/topic803702.html
    Nie sądzę, aby komuś udało się zrobić coś bardziej prymitywnego...
REKLAMA