hd44780 zmiana znakow definiowanych w locie

Mam głupi problem. Zależnie od sztuki/producenta wyświetlacza "zgodnego z hd44780" raz działa, raz nie działa soft. Jak prawidłowo powinno wyglądać definiowanie "znaków własnych" (8szt) i jak je zmieniać "w locie" podczas działania wyświetlania? Chodzi o to, że muszę ich zmajstrować przynajmniej 40, ale nie będą naraz wyświetlane, więc mogą być ładowane do lcd tylko aktualnie użyte. Ale ładowanie + inicjalizacja całego lcd trwa zbyt długo, obraz znika na ~1-2s.

Reply to
BartekK
Loading thread data ...
Reply to
invalid unparseable

Michał Augustyniak pisze:

Chyba, a w praktyce - zależnie od lcd - albo po aktualizacji robią się krzaki (a taka sama aktualizacja z inicjalizacją krzaków nie daje), albo w ogóle nie jest uaktualniany lcd, tak jakby kontroler "nie pobrał" z ramu znaków nowych, tylko nadal trzymał stare w "pamięci obrazu" (w cudzysłowiach, bo w przypadku hd44780 to wszytko jest takie mocno naciągane, nie wiadomo jak kopiujący jego działanie w praktyce to zrealizował, czy istnieje osobna pamięc ekranu, czy jest cachowana itp)

tak, aczkolwiek sama operacja inicjalizacji trwa bardzo krótko (sygnalizuję sobie testowo ledem- w zasadzie nawet nie widać jak mrugnie) a lcd przygasa i dopiero "wraca" po tak długim czasie, niezależnie od kontrolera. Innych producentów lcd robią to co prawda szybciej, ale akurat takie musze stosować bo już obudowa, otwory, złącza itp są rozplanowane, tylko soft upgraduje.

Reply to
BartekK

Heliogabal pisze:

A przepraszam, możesz rozwinąć? EdW nie posiadam C jako-tako znam problemem jest sam LCD który inicjalizację wykonuje jako "zniknięcie wszystkiego" i po chwili zaczyna wyświetlać (być może generator napięcia ujemnego do kontrastu też zostaje zatrzymany czy coś). Dlatego pytam czy da się to zrobić inaczej. Jeśli gdzieś popełniam błąd to nie krępuj się i napisz wprost...

Reply to
BartekK

Sat, 15 Sep 2007 23:19:14 +0200 jednostka biologiczna o nazwie BartekK snipped-for-privacy@NOSPAMdrut.org wyslala do portu 119 jednego z serwerow news nastepujace dane:

Normalnie. Tak samo jak zapisujesz do DD (Display Data) RAM, tak samo zapisujesz do CG (Char Generator) RAM

Nie ma gwarancji że po resecie/inicjalizacji HD44780 zawartość CG RAM zosanie niezmieniona (zazwyczaj część danych zostaje przekłamana).

Typowo wyświetlacz inicjalizuje się tylko raz - na początku kiedy urządzenie zostaje uruchomione, nie ma potrzeby tego robić później i się nie robi. Jeżeli po załadowaniu danych do CG RAM inicjalizujesz wyświetlacz to nie dziw się że bzdury się ze zdefiniowanych znaków robią.

Absolutnie nie ma potrzeby (ani sensu) inicjalizowania wyświetlacza po załadowaniu danych do CG RAM. Jeżeli zrobiłeś wszystko poprawnie, to nowych znaków można używać natychmiast.

Jeżeli masz nie więcej niż 8 własnych znaków (bo tyle można samemu wpisać) to wystarczy załadować je tylko raz, np. zaraz po inicjalizacji.

Reply to
__Maciek

__Maciek pisze:

To jest oczywiste, tak robię.

Ok, w tym był mój błąd, wyrzuciłem ponowną inicjalizację i już działa super szybko :)

W tym problem właśnie że znaków mam dużo więcej niż 8, ale nie będą używane równocześnie na ekranie. Będzie wyświetlany "ładny" bargraf, wypełniający się po 1 pixelu, z zaznaczonymi "podziałkami" co ileśtam itp - potrzeba conajmniej 1znak na "kratka pełna w 100%", 2gi znak na "kratka pusta" (sama podziałka) oraz 5 znaków na kolejne etapy wypełnienia danej kratki (bo znak jest 5pix szeroki). Ale równocześnie na ekranie będzie znajdowało się tylko 3 typy znaku (lub tylko 1 gdy jest 100% full, lub 0%). Problem pojawia się gdyż oprócz takiego bargrafu muszę wyświetlić około 10 róznych "ikonek" (na szczęście nie równocześnie) więc kombinuję z dynamiczną zamianą.

To co przetestowałem:

- inicjalizacja hd

- załadowanie zestawu znaków własnych

- wypisanie tych znaków na ekran

- ładowanie nowych definicji znaków ... i tutaj zależnie od producenta lcd - albo od razu aktualizuje się na lcd obraz danego aktualizowanego znaczka (np gdy ładuje go linia po linii pomału - widać na lcd że zmieniają się konkretne linie w znaku), albo też zmiany wyświetlania nie ma wcale! dopiero gdy użyję dowolnej funkcji zmieniającej obraz na lcd, tzn napiszę ponownie dany znak, scrolluję obraz itp. Domyślam się że tylko pierwsza wersja jest zgodna z typowym hd44780, ale oba wyświetlacze są "prawie jak..." made in china, z czipem pod smarkiem czarnym...

Reply to
BartekK

Fri, 21 Sep 2007 22:15:44 +0200 jednostka biologiczna o nazwie BartekK snipped-for-privacy@NOSPAMdrut.org wyslala do portu 119 jednego z serwerow news nastepujace dane:

A może warto pomyśleć o lekkim zubożeniu artystycznej wizji obrazków na wyświetlaczu? Albo zastosować graficzny LCD.

BTW na "kratka pusta" masz spację :-) Znak cały wypełniony chyba też jest gotowy (ściągnij sobie dokumentację od HD44780 i zobacz co on tam ma we wbudowaym CG).

Cholera wie. Może w wersji gdzie się nie zmienia, drivery kolumn i rzędów wyświetlają z jakiejś dodatkowej wewnętrznej pamięci obrazu, a ta nie jest zmieniana jeżeli nie wykonasz jakiejś funkcji typu pisanie, scrollowanie itp.

Reply to
__Maciek

__Maciek pisze:

Dlatego pisałem w cudzysłowiu, bo "kratka pusta" oznacza narysowanie "skali" bargrafu bez samego bargrafu, nie wiem jak to opisać prosto... np

formatting link
- u mnie linijka będzie zupełnie inaczej rysowana, ale chyba widzisz o co mi chodzi ;)

Reply to
BartekK

to może zależeć od sposobu w jaki kontroler realizuje generowanie obrazu na lcd

// hitachi czyta znak z DDRAM, zagląda do CGRAM, wypulwa na LCD

// china aby było "szybciej/taniej" pamięć do wyświetlenia jest "graficzna" natomiast rysowanie znaku przez użytkownika powoduje (jednorazowe) skopiowanie danych z CGRAM do pamięci graficznej

to tak jakby zdegradować graficzny lcd do tekstowego

czy po wrzuceniu nowych znaków do CGRAM nie możesz ich "odświeżyć" na ekranie?

Reply to
Darek

Darek pisze:

Mogę. Aczkolwiek wygodniej byłoby tego nie robić :) Tyle że wolę zrobić soft na tyle uniwersalny że wymiana lcd nie spowoduje kaszany totalnej z niewytłumaczalnymi objawami od strony użytkownika.

Reply to
BartekK

Heliogabal pisze:

A jest jakis sposob zeby dostac wszystkie artykuly z tego kursu w formie pdf. Bo zakup gazet jakos mnie nie interesuje. W sklepie AVT plyty z EdW koncza sie na roczniku 2003.

Reply to
Marcin Gala

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.