-
1. Data: 2014-04-21 22:27:00
Temat: Miganie wyświetlacza 2x16 przy przewijaniu tekstu
Od: Atlantis <m...@w...pl>
Bawię się właśnie pinami GPIO Raspberry Pi.
Podpiąłem do nich wyświetlacz 2x16 na hd44780 (negatyw, niebieskie tło i
białe litery). LCD podłączony przez magistralę 4bit, GPIO i LCD
obsługuję za pomocą biblioteki wiringPi. Napisałem sobie do tego prosty
program scrollujący tekst na jednej linii. Całość opiera się na zasadzie
zbliżonej do bufora cyklicznego. W pętli głównej program sprawdza ile
czasu minęło od ostatniego uaktualnienia. Jeśli minie zadany okres,
wysyła do wyświetlacza 16 kolejnych znaków licząc od początku. Potem
wskaźnik początku się imkrementuje i tak w kółko. Jeśli dojdzie do końca
łańcucha (lub bufora) wskaźnik znów otrzymuje wartość 0.
Mam jednak efekt dziwnego migotania przewijanego tekstu. Wygląda to tak,
jakby po uaktualnieniu w miejscu gdzie tekst był wcześniej pozostał jego
ciemny cień.
Co jest w największym stopniu powodem tego zjawiska? Mam kilka hipotez:
1) Konstrukcja samego wyświetlacza - problem nie do obejścia, pozostaje
szukać lepszego.
2) Zbyt długie wgrywanie znaku z uwagi na brak odczytu flagi zajętości.
Jedynym wyjściem jest dodanie bufora na linii R/W, połączenie jej z RPi
i przerobienie biblioteki, która domyślnie nie obsługuje tego trybu.
3) Zbyt wolna transmisja z uwagi na zastosowanie 4bitowej magistrali -
trzeba poświęcić dodatkowe 4 linie.
4) Mój kod jest zły i trzeba napisać go jeszcze raz, stosując inne
podejście.
5) Migotanie wynika z zastosowania RasPi - lepiej w tym przypadku użyć
dedykowanego mikrokontrolera.
Która rozwiązanie jest najbardziej prawdopodobne?
Tak... Wiem, że niektóre wyświetlacze pozwalają na ograniczoną obsługę
przewijania. Mi jednak zależy na możliwości wyświetlania długich
tekstów, więc wolę to zrealizować programowo.
-
2. Data: 2014-04-21 22:47:03
Temat: Re: Miganie wyświetlacza 2x16 przy przewijaniu tekstu
Od: AlexY <a...@i...pl>
Użytkownik Atlantis napisał:
> Bawię się właśnie pinami GPIO Raspberry Pi.
> Podpiąłem do nich wyświetlacz 2x16 na hd44780 (negatyw, niebieskie tło i
> białe litery). LCD podłączony przez magistralę 4bit, GPIO i LCD
> obsługuję za pomocą biblioteki wiringPi. Napisałem sobie do tego prosty
> program scrollujący tekst na jednej linii. Całość opiera się na zasadzie
> zbliżonej do bufora cyklicznego. W pętli głównej program sprawdza ile
> czasu minęło od ostatniego uaktualnienia. Jeśli minie zadany okres,
> wysyła do wyświetlacza 16 kolejnych znaków licząc od początku. Potem
> wskaźnik początku się imkrementuje i tak w kółko. Jeśli dojdzie do końca
> łańcucha (lub bufora) wskaźnik znów otrzymuje wartość 0.
>
> Mam jednak efekt dziwnego migotania przewijanego tekstu. Wygląda to tak,
> jakby po uaktualnieniu w miejscu gdzie tekst był wcześniej pozostał jego
> ciemny cień.
Jeśli to nie jest jakiś głupi błąd w programie wstawiający stare znaki
po wstawieniu nowych to musi to być problem z LCD, bawiłeś się pinem od
kontrastu?
[..]
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html
-
3. Data: 2014-04-22 03:10:35
Temat: Re: Miganie wyświetlacza 2x16 przy przewijaniu tekstu
Od: "Pawel \"O'Pajak\"" <k...@c...goznac>
Powitanko,
> 1) Konstrukcja samego wyświetlacza - problem nie do obejścia, pozostaje
> szukać lepszego.
Niektore LCD bywaja zramolale, ale to szczegolnie w niskich temp.
Wystarczy na chwile wsadzic do lodowki, by popularne wyswietlacze mialy
refleks faceta w kapeluszu ruszajacego fiatem uno spod swiatel.
Moze kontrast jest ustawiony za duzy.
Jak podepniesz wyswietlacz do czegos innego niz Pi, to sie wyjasni czy
to problem sprzetowy, czy softu.
Pozdroofka,
Pawel Chorzempa
--
"-Tato, po czym poznać małą szkodliwość społeczną?
-Po wielkiej szkodzie prywatnej" (kopyrajt: S. Mrożek)
******* >>> !!! UWAGA: ODPOWIADAM TYLKO NA MAILE:
moje imie.(kropka)nazwisko, ten_smieszny_znaczek, gmail.com
-
4. Data: 2014-04-22 08:07:39
Temat: Re: Miganie wyświetlacza 2x16 przy przewijaniu tekstu
Od: Artur Miller <n...@m...com>
On Mon, 2014-04-21 at 21:47 +0100, AlexY wrote:
> Użytkownik Atlantis napisał:
> > Bawię się właśnie pinami GPIO Raspberry Pi.
> > Podpiąłem do nich wyświetlacz 2x16 na hd44780 (negatyw, niebieskie tło i
> > białe litery). LCD podłączony przez magistralę 4bit, GPIO i LCD
> > obsługuję za pomocą biblioteki wiringPi. Napisałem sobie do tego prosty
> > program scrollujący tekst na jednej linii. Całość opiera się na zasadzie
> > zbliżonej do bufora cyklicznego. W pętli głównej program sprawdza ile
> > czasu minęło od ostatniego uaktualnienia. Jeśli minie zadany okres,
> > wysyła do wyświetlacza 16 kolejnych znaków licząc od początku. Potem
> > wskaźnik początku się imkrementuje i tak w kółko. Jeśli dojdzie do końca
> > łańcucha (lub bufora) wskaźnik znów otrzymuje wartość 0.
> >
> > Mam jednak efekt dziwnego migotania przewijanego tekstu. Wygląda to tak,
> > jakby po uaktualnieniu w miejscu gdzie tekst był wcześniej pozostał jego
> > ciemny cień.
>
> Jeśli to nie jest jakiś głupi błąd w programie wstawiający stare znaki
> po wstawieniu nowych to musi to być problem z LCD, bawiłeś się pinem od
> kontrastu?
>
> [..]
>
>
hd44780 ma swoj generator znaków, nie trzeba softłerowo gasić pixli...
@
-
5. Data: 2014-04-22 08:18:50
Temat: Re: Miganie wyświetlacza 2x16 przy przewijaniu tekstu
Od: Atlantis <m...@w...pl>
W dniu 2014-04-22 08:07, Artur Miller pisze:
> hd44780 ma swoj generator znaków, nie trzeba softłerowo gasić pixli...
Nikt tego nie robi... Miałem na myśli wysyłanie znaków pojedynczo, za
pomocą funkcji lcdPutchar().
W każdym razie regulacja kontrastu nic nie dała. Poszperałem trochę po
pudełkach z częściami i udało mi się znaleźć jeszcze jeden wyświetlacz -
najbardziej typowy, z czarnymi znakami i zielonym podświetlaniem. W jego
przypadku jest nieporównywalnie lepiej. Co prawda jeśli bardzo mocno
wytężyć wzrok, też da się zauważyć przez krótki moment ten ślad po
znikającej literce. Jednak natężenie tego zjawiska jest znacznie
mniejsze i już nie rzuca się w oczy podczas normalnego oglądania
przesuwającego się napisu. Kod się nie zmienił, wychodzi więc na to, że
powodem zjawiska jest bezwładność samych pikseli, większa w tym
pierwszym modelu.
-
6. Data: 2014-04-22 09:11:23
Temat: Re: Miganie wyświetlacza 2x16 przy przewijaniu tekstu
Od: BartekK <s...@d...org>
W dniu 2014-04-22 08:18, Atlantis pisze:
> W dniu 2014-04-22 08:07, Artur Miller pisze:
>
>> hd44780 ma swoj generator znaków, nie trzeba softłerowo gasić pixli...
>
> Nikt tego nie robi... Miałem na myśli wysyłanie znaków pojedynczo, za
> pomocą funkcji lcdPutchar().
>
> W każdym razie regulacja kontrastu nic nie dała. Poszperałem trochę po
> pudełkach z częściami i udało mi się znaleźć jeszcze jeden wyświetlacz -
> najbardziej typowy, z czarnymi znakami i zielonym podświetlaniem. W jego
> przypadku jest nieporównywalnie lepiej. Co prawda jeśli bardzo mocno
> wytężyć wzrok, też da się zauważyć przez krótki moment ten ślad po
> znikającej literce. Jednak natężenie tego zjawiska jest znacznie
> mniejsze i już nie rzuca się w oczy podczas normalnego oglądania
Dokładnie tak - co wyświetlacz (i chiński "odpowiednik" HD44780) to
inaczej się zachowuje, dlatego jeśli musisz scrolować - to używaj
funkcji sprzętowej samego wyświetlacza, a nie przerysowuj całego ekranu
softwarowo od nowa. Wiem - hd nie ma scrollu - ale ma za to funkcję
"display shift" - miejsce pisania tekstu (nr literki na lcd) jest stałe,
a przesuwa się sam tekst wcześniej wpisany, tak to wygląda:
http://www.geocities.com/dinceraydin/img/an07.gif
Aby to uaktywnic - włączasz Entry mode set 07h (zamiast standardowego 06h)
--
| Bartłomiej Kuźniewski
| s...@d...org GG:23319 tel +48 696455098 http://drut.org/
| http://www.allegro.pl/show_user_auctions.php?uid=338
173
-
7. Data: 2014-04-22 09:18:11
Temat: Re: Miganie wyświetlacza 2x16 przy przewijaniu tekstu
Od: Atlantis <m...@w...pl>
W dniu 2014-04-22 09:11, BartekK pisze:
> inaczej się zachowuje, dlatego jeśli musisz scrolować - to używaj
> funkcji sprzętowej samego wyświetlacza, a nie przerysowuj całego ekranu
> softwarowo od nowa. Wiem - hd nie ma scrollu - ale ma za to funkcję
> "display shift"
Wiem. Jednak podstawową zaletą software'owego odświeżania zawartości
fragmentu ekranu jest to, że mogę łatwo wyświetlać tekst o większej
długości. W tej chwili wygląda to całkiem znośnie.
-
8. Data: 2014-04-22 14:09:21
Temat: Re: Miganie wyświetlacza 2x16 przy przewijaniu tekstu
Od: AlexY <a...@i...pl>
Użytkownik Artur Miller napisał:
> On Mon, 2014-04-21 at 21:47 +0100, AlexY wrote:
[..]
>> Jeśli to nie jest jakiś głupi błąd w programie wstawiający stare znaki
>> po wstawieniu nowych to musi to być problem z LCD, bawiłeś się pinem od
>> kontrastu?
>>
>> [..]
>
> hd44780 ma swoj generator znaków, nie trzeba softłerowo gasić pixli...
Chyba nie zrozumiałeś, chodzi mi o tworzenie programowego "cienia" coś
jak uzyskiwanie bodaj ponad 200kolorów na C64 oryginalnie mającym ich
16. Wstawiasz nowy znak, stary i znowu nowy, powstanie cień starego.
--
AlexY
http://faq.enter.net.pl/simple-polish.html
http://www.pg.gda.pl/~agatek/netq.html