Cześć.
Chciałem się zapytać o wyświetlacz kolorowy od Nokii 3510i z kursu EdW.
Otóż przeczytałem marcowe EdW i zastanawia mnie kilka rzeczy.
1. Do wyświetlacza jest wysyłana komenda która przyjmuje np 5
paramerów. Co się stanie w sytuacji jak wyślemy inną liczbe danych niż
wymaga komenda (mniejszą lub większą)?
2. A jak wygląda sprwa organizacji pamięci wyświetlacza we
współrzędne. Tzn jak jest liczona jego rozdzielczośc gdzie jest punkt
X=0 i Y=0 oraz jakie są max wartości X i Y.
W przypadku wyświatacza od Nokii 3310 w EdW 11/06 na stronie 41 jest
taki rysunek pokazujący organizację pamięci wyświetlacza. A jak to
wygląda w tym kolorowym wyświetaczu. Jak się mają teraz punkty
(piksele) do subpikseli RGB.
3. Jak się odbywa sterowanie jasnością pikseli? Dlaczego korzystamy z
takiego "dziwnego" trybu 12bpp a nie łatwiejszego 8bpp.
Jak w tych dwóch przypadkach spowodować narysowanie jednej poziomej
lub dla utrudnienia pionowej linii, albo np jednego koloru.
Wyświetlacz kolorowy z kursu EdW
Wyświetlacz kolorowy z kursu EdW
Ostatnio zmieniony 13 mar 2007, 6:54 przez slawek55, łącznie zmieniany 4 razy.
Na podstronie dotyczącej wyświetlacza 3510i umieściłem oryginalnego pdf'a opisującego sterownik. Zapraszam: https://elportal.pl/n0017
Mniejszą - nie mam pojęcia. Większą - można spodziewać się, że wyświetlacz zignoruje resztę danych. Producent raczej nie spodziewał się takiego pytania. Pytanie: po co wysyłać mniejszą lub większą ilość danych niż wymaga komenda?Co się stanie w sytuacji jak wyślemy inną liczbę danych niż
wymaga komenda (mniejszą lub większą).
W wyświetlaczu określamy okno dostępu. Początek powinien mieć mniejszą wartość niż koniec okna. Nie da się jednoznacznie odpowiedzieć na to pytanie, kierunek zmian współrzędnych oraz ich początek możemy dowolnie określać. Można przyjąć, że przy domyślnej konfiguracji, bez podawania okna - tak jak w artykule, punkt 0,0 jest w lewym-górnym rogu jeśli za górę uznamy stronę na której znajduje się sterownik i złącze.A jak wygląda sprwa organizacji pamięci wyświetlacza we
współrzędne. Tzn jak jest liczona jego rozdzielczośc gdzie jest punkt
X=0 i Y=0 oraz jakie są max wartości X i Y.
Uznałem, że w tym przypadku nie ma sensu pokazywanie takiego rysunku. W wyświetlaczu każda komórka pamięci ma 12 bitów i jednoznacznie odpowiada jednemu pikselowi.w przypadku wyświatacza od Nokii 3310 w EdW 11/06 na stronie 41 jest
taki rysunek pokazujący organizację pamięci wyświetlacza. A jak to
wygląda w tym kolorowym wyświetaczu. Jak się mają teraz punkty
(piksele) do subpikseli RGB.
No przepraszam, ale w tym przypadku odsyłam do artykułu. Wyjaśniam tam zarówno krzywą gamma jak i ustalanie poszczególnych składowych.Jak sie odbywa sterowanie jasnościa pikseli?
Ponieważ daje on większe możliwości (więcej kolorów). Proszę zauważyć, że gdybyśmy mogli ustawić szerokość danych wysyłanych przez nasz SPI na 12 bitów nie byłoby żadnego problemu. Problem wynika jedynie z faktu, że przesyłamy 12 bitowe słowa przez interfejs o sztywnej szerokości 8 bitów. Ponadto tryb 8 bitów wymaga ustawienia palety kolorów (inaczej prawdopodobnie nic nie zobaczymy, podczas prób bez konfiguracji palety wyświetlacz pozostawał ciemny). Tryb 8bpp będzie wykorzystany w części 16.Dlaczego korzystamy z
takiego "dziwnego" trybu 12bpp a nie łatwiejszego 8bpp.
Poziomy pasek już rysujemy. Powiem szczerze, że tym zagadnieniem w ramach kursu już nie będziemy się zajmować, ponieważ przypominam, że poznajemy wyświetlacz kolorowy aby poznać kolejne zagadnienie C jakim jest obsługa pamięci zewnętrznej. Rysowanie linii już było, w najbliższej części będziemy obsługiwać wyświetlacz z wykorzystaniem bufora w pamięci naszego zestawu. Tam rysowanie linii odbywa się identycznie jak miało to miejsce w przypadku LCD3310, w przypadku trybu 8bpp będzie trzeba jedynie pamiętać, że teraz współrzędna y nie będzie rozdzielana na adres i przesunięcie w bajcie. Po prostu jedna komórka odpowiada jednemu pikselowi. Tworzenie bufora 12bpp wymagałoby raczej wykorzystania 2 bajtów na każdą komórkę pamięci (dla ułatwienia obliczeń). W przypadku naszej płytki zajmie to ponad 1/3 dostępnego ram'u i nie wiem na ile jest sensowne, jednak idea jest ta sama, teraz jednak wskaźnik będzie wskazywał na liczbę 16bit, kompilator zadba aby przesunięcie o 1 pozycję spowodowało przesunięcie o 2 bajty.jak w tych dwóch przypadkach spowodować narysowanie jednej poziomej
lib dla utrudnienia pionowej linii, albo np jednego koloru
Przeczytałem ponownie i czy tam nie ma opisanej tylko idei.No przepraszam, ale w tym przypadku odsyłam do artykułu. Wyjaśniam tam zarówno krzywą gamma jak i ustalanie poszczególnych składowych
Ja mam na myśli coś takiego: W LCD3310 jeden bit odpowiadał jednemu pikselowi, a tu jest inaczej. Czy tak? Np rysunek 69, co oznacza stwierdzenie "indeks piksela, którego dotyczą dane"?
A tak bardzo prosto pytając: Jeśłi mam dany piksel to co mam podać do LCD aby ostawić jakiś kolor, i czy w ogóle istnieje coś takiego jak pozycja kursora? CZy będziemy wykorzystywać polecenia typu GotoXY?
W EdW nie widziałem też opisu polecenia CASET i PASET?
Jeszcze coś mnie zainteresowało. Po co sie ustawia bit B/T w DISCTL. Na co to wpływa?
- gwozdex
- Użytkownik
- Posty: 879
- Rejestracja: 24 lut 2006, 10:04
- Lokalizacja: Czechowice-Dziedzice
- Kontakt:
Witam!
Mam takie-"orientujące mnie"- pytanie:"Czy można oprogramować ten wyświetlacz w BASCOM? Czytałem gdzieś, że nowa wersja tj. BASCOM 1.11.8.3 posiada nowa bibliotekę do obsługi takich wyświetlaczy (tj. "komórkowych") w których zastosowano sterowniki PCF8533 lub sterowniki EPSON. Dodatkowo wątpliwości mogą budzić odmienne opisy wyprowadzeń. Ja osobiście stawialym na to że można to zrobic. Pozdrawiam.
Mam takie-"orientujące mnie"- pytanie:"Czy można oprogramować ten wyświetlacz w BASCOM? Czytałem gdzieś, że nowa wersja tj. BASCOM 1.11.8.3 posiada nowa bibliotekę do obsługi takich wyświetlaczy (tj. "komórkowych") w których zastosowano sterowniki PCF8533 lub sterowniki EPSON. Dodatkowo wątpliwości mogą budzić odmienne opisy wyprowadzeń. Ja osobiście stawialym na to że można to zrobic. Pozdrawiam.
W wyświetlaczu z 3510i 12 bitów odpowiada jednemu pikselowi. Indeks piksela - chodzi o to, że gdy określimy już okno zapisu, mamy indeks zerowy w górnym lewym rogu okna, pierwszy o jeden piksel na prawo... Oczywiście to przy założeniu domyślnych ustawień. Bo konfiguracja gdzie jest piksel 0 i jak zmieniają się ich indeksy jest praktycznie dowolna.slawek55 pisze:Ja mam na myśli coś takiego: W LCD3310 jeden bit odpowiadał jednemu pikselowi, a tu jest inaczej. Czy tak? Np rysunek 69, co oznacza stwierdzenie "indeks piksela, którego dotyczą dane"?
Istnieje coś takiego jak kursor, jednak nie mamy możliwości jego ustawienia. Jedyną możliwością jest takie skonfigurowanie okna aby jego początek znalazł się na interesującym nas pikselu. Instrukcji GoToXY nie będę w ramach kursu tworzył.slawek55 pisze:A tak bardzo prosto pytając: Jeśłi mam dany piksel to co mam podać do LCD aby ostawić jakiś kolor, i czy w ogóle istnieje coś takiego jak pozycja kursora? CZy będziemy wykorzystywać polecenia typu GotoXY?
Polecenia CASET i PASET zostały celowo omówione we fragmencie dotyczącym dostępu do pamięci wyświetlacza.slawek55 pisze:W EdW nie widziałem też opisu polecenia CASET i PASET?
Teoretycznie określa (co opisuję przy omówieniu stosownej komendy) gdzie jest sterownik - na górze czy na dole wyświetlacza. Określa to orientację pola odczytowego wyświetlacza. Umieszczenie sterownika na dole spowodowałoby lustrzane odbicie pikseli wyświetlacza. W praktyce manual sterownika zaleca konfigurację gdy sterownik znajduje się na górze. Odwrócić ekran można innymi instrukcjami (MADCTL).slawek55 pisze:Jeszcze coś mnie zainteresowało. Po co sie ustawia bit B/T w DISCTL. Na co to wpływa?
Można - Zgodnie z zasadą - potrafię programować w każdym języku - pokażcie mi tylko jak się tutaj robi wstawki asembleragwozdex pisze:czy można oprogramować ten wyświetlacz w BASCOM?
Z tego co się orientowałem dotyczy to wyświetlaczy czarno-białych. Nawet jeśli byłaby możliwość programowania wyświetlaczy kolorowych, trzeba pamiętać, że w wersji demo, praktycznie nie bardzo nawet zmieścimy jeden obrazek w pamięci kontrolera. I szczerze mówiąc, BASCOM'a używam do bardzo specyficznych aplikacji i sięgam do niego nie częściej jak dwa razy do roku. Nie śledzę wszystkich pojawiających się w nim zmian, więc pytania te należałoby raczej skierować do użytkownika ZbeeGin.gwozdex pisze:BASCOM 1.11.8.3 posiada nowa bibliotekę do obsługi takich wyświetlaczy (tj. "komórkowych") w których zastosowano sterowniki PCF8533 lub sterowniki EPSON.
-
ZbeeGin
Skoro zostałem wywołany, to: Tak, są takie biblioteki które należy dołączyć do programu dyrektywą $LIB.
Aktualnie są dwie: LCD-EPSON.LBX oraz LCD-PCF8833.LBX. Po skonfigurowaniu wyświetlacza przez instrukcję CONFIG GRAPHLCD w nowej składni:
Config Graphlcd = Color, Controlport = PortC, Cs = 1, Rs = 0, Scl = 3, Sda = 2
Można już używać poleceń: LINE, CIRCLE, BOX.
Niestety więcej nie mogę powiedzieć na ten temat, bo nie zgłębiałem całości tematu.
Aktualnie są dwie: LCD-EPSON.LBX oraz LCD-PCF8833.LBX. Po skonfigurowaniu wyświetlacza przez instrukcję CONFIG GRAPHLCD w nowej składni:
Config Graphlcd = Color, Controlport = PortC, Cs = 1, Rs = 0, Scl = 3, Sda = 2
Można już używać poleceń: LINE, CIRCLE, BOX.
Niestety więcej nie mogę powiedzieć na ten temat, bo nie zgłębiałem całości tematu.