Wielkościowo jest podobny do tego z s65, tak jak kolega wspomniał rozdzielczość jest większa. Dodatkowo opisana komunikacja równoległa jakoś mnie nie przekonuj, ale chyba można je również sterować szeregowo?!
Pozdrawiam
Rozumiem o co Ci chodzi, faktem jest że przy takiej rozdzielczości ciężko byłoby przy szeregowym interfejsie zmieniać zawartość całego wyświetlacza w rozsądnym czasie.
Zależy kto do czego używa takiego wyświetlacza. Jeżeli chcesz zapełniać jego całość danymi to wiadomo że interface równoległy jest tu zbawienny.
Ja natomiast zazwyczaj nie zmieniam dużej powierzchni wyświetlacza naraz dlatego kieruje się bardziej oszczędnością wyprowadzeń jakie muszę zużyć na jego podłączenie.
Bawię się teraz wyświetlaczem z LS020 podłączonym do STM32F103 i taka uwaga dla potomnych którzy mają problem z prawidłowym odpaleniem: w moim egzemplarzu przy zmianie RS z COMMAND na DATA trzeba też przepinać linię CS. Bez tego sterownik nie chciał wyegzekwować przesłanej komendy.
Na początku zakładałem że komendy i dane da się wysłać za jednym zamachem mając CS w stanie niskim, ale niestety nie da rady.
Przesiadłem się na mikrokontroler atmega32u4 i mam problem z prawidłowym ustawieniem podświetlenia (generacja PWM), cewka 1mH.
Przy ustawieniu:
DDRB|=(1 << PB7);
TCCR0A = (1<<WGM01) | (1<<WGM00) | (1<<COM0A1);
TCCR0B = (1<<CS00);
OCR0A = 120;
działa jednak podświetlenie miga, i przy tym ustawieniu nie wiadomo dlaczego jak zmieniam wartość rejestru OCR0A zmienia się(jasność) podświetlenia a jednak TOP = 0xFF
a powinno być tak ale nie chce działać:
DDRB|=(1 << PB7);
TCCR0A = (1<<WGM01) | (1<<WGM00) | (1<<COM0A1);
TCCR0B = (1<<CS02) | (1<<WGM02);
OCR0A = 120;
czyli :
- Clear OC0A on Compare Match, set OC0A at TOP
- Fast PWM, TOP = OCR0A
- clock = clk/256 (From prescaler)
EDIT:
eh. problem ma związek z bootloaderem. Zaprogramowany układ odłączony i podłączony do prądu działa. Zresetowany również. Przy programowaniu flipem, jak kliknę "start application" oraz zaznaczony jest reset, program najprawdopodobniej wpada w jakąś pętle(co chwile reset), jak odznaczony jest reset wszystko działa:
Jednak działa to pierwsze ustawienie, druga konfiguracja PWM bez efektu.. dlaczego?
Nie o to chodzi.
Chodzi o to że nie mogę odczytać jaki kolor ma dany piksel. Brakuje funkcji odczytu poszczególnych pikseli tak jak masz funkcję odczytu z w hd7.. jaki znak znajduje się na danym polu za pomocą odpowiedniej komendy i piny R/W.
Łapiesz?
Problem polega na tym że jak coś przykryje kursorem to muszę wiedzieć co pod nim było aby to nie znikło, nie ma takiej możliwości ponieważ nie mogę tego odczytać z pamięci wyświetlacza. No chyba że jest taka funkcja a jedynie ja o niej nie wiem?!
Aaa Ale zdaje się że taka funkcja jest, tylko że nikt jej nie uruchomił.
Ten wyświetlacz był uruchamiany za pomocą Reverse Engineeringu i nie wszystko działa tak jak powinno.
Otóż...z drobną pomocą (dzięki snnaap!) udało mi się przebrnąć przez inicjację LCD, model LS020(z końcówką 5, czyli bez zielonej "wstawki" z tyłu w sterowniku). Jednakże mam problem z użytecznymi komendami.
Na początek chciałbym oczywiście wypełnić cały wyświetlacz jakimś kolorem, ale...wypełnia się tylko do połowy:
http://img442.imageshack.us/img442/4016/ls0202.jpg Również, gdy pobawię się funkcją wypełniającą, uzyskuję zerwanie ciągłości obrazu w środku wyświetlacza:
http://img834.imageshack.us/img834/332/ls0201.jpg Co dziwne, udaje się wypełnić cały...ale to chyba ze względu na cykliczne wysyłanie tej funkcji w pętli for (sprawdzić muszę jak to będzie wyglądało przy wysłaniu tylko raz).
Gdy wyślę dwie komendy fill_screen (dla sprawdzenia o różnym kolorze), to druga połowa wypełnia się drugim kolorem. Więc wygląda na to, że 132*176 w pętli for to połowa. No ale jak dam 132*176*2, to nic się nie rysuje (random screen po inicjacji pozostaje).
Natomiast gdy miałem w pętli po kolei zapełnianie kolorami 0-255 (można inny zakres?) to...polecam filmik:
http://www.youtube.com/watch?v=ytKgHUcygOU Czyli kolory niby prawidłowo się scrollują(taki efekt wychodzi ), ale mają dwa "odcienie", bo znów coś jest nie tak przy przejściu przez środek. Jakieś pomysły?
Nie działają również komendy do włączania i wyłączania LCD. Sekwencja ostatecznie odłączająca LCD działa, aczkolwiek nie udaje jej się w pełni wygasić wyświetlacza przed odcięciem zasilania (ale lepsze to od ręcznego rozłączenia).
Mam jeszcze pytanie odnośnie trybów wyświetlania. 8 bit, 16 bit, 8 color, 65k color. O co w nich chodzi? 65k to nie 16 bit? Jakieś objaśnienia mile widziane. Bo w sumie póki co nie korzystam z nich (nawet nie wiem czy działają u mnie).
Korzystam z Arduino UNO. W zasadzie nic to nie zmienia w uC, którym jest ATMEGA328. Kwestia gotowych bibliotek do obsługi (to tak dla informacji, żeby nikt się nie czepiał "co to jest?!")
Info: funkcja initialization() jest napisana przeze mnie, setup() to funkcja Arduino, która wykonuje się RAZ po starcie, natomiast loop() jest również funkcją od Arduino, ale działa ona w pętli (czyli taki zwykły while).
[EDIT] Ok. Znów dzięki pomocy kolegi snnaap udało się ogarnąć sprawę. Wszystko przez to, że próbowałem słać po SPI dwa bajty, a nie jeden...
No ale świeżak jestem - mam prawo być debilem : D
Witam
Posiadam LCD zmontowany wg. tej strony
http://www.superkranz.de/christian/S65_Display/DisplayIndex.html Wgrywam pliki do atmegi także z tej strony plik simple.hex
Niestety nic sie na lcd nie dzieje,mruga tylko dioda przy atmedze.Dodam że to jest atmega 8 ,posiadam Bascoma ale kompletnie nie wiem od czego zacząć.
Pliki wgrywam MKavrCALCulatorem.
Mam jeden pliczek .bas co nieco w nim pozmieniałem ,ale lcd nie startuje.Ma ktoś może z Was jakiś start pod megę8 i lcd siemensa?(epson).
Napisz jeszcze który masz wyświetlacz, bo wróżki są jeszcze na urlopie.
Porad udzielam wyłącznie na forum, nie pomagam na PW
Zanim zadasz pytanie, wiedz, że zostało już omówione tutaj, a 99% nie jest unikalne. Użyj wyszukiwania.
Porad udzielam wyłącznie na forum, nie pomagam na PW
Zanim zadasz pytanie, wiedz, że zostało już omówione tutaj, a 99% nie jest unikalne. Użyj wyszukiwania.
Skasuj cały początek aż do wiersza History (razem z nim).
Chociaż jak wrzuciłem do folderu LIB bibliotekę bez żadnych zmian i skompilowałem przykład to jedyny błąd jaki mi wyskoczył to ograniczenie kodu wynikowego do 4kB...
Ale właściwie dlaczego próbujesz kompilować bibliotekę? To wrzucasz do folderu LIB Bascoma i zapominasz. Potem używasz w programie tylko jej poleceń jak w przykładzie Freddy'ego z postu #346
Ehhh chodzi mi oto ,że nie ogarniam na razie programowania.Chciałbym odpalić ten lcd ,aby po tym zmieniać odpowiednio komendy itd. a do tego potrzebna mi jest startowa biblioteka np. >bas ,aby potem zrobić konwersję na hexa.Po prostu jestem zielony.Naukę chcę podjąć w sposób prób i błędów , dodając odejmując w wierszach komend i.t.d.Wcale nie sugeruję aby ktoś na siłę DAŁ mi gotowca.Ja tylko chcę odpalić lcd i się uczyć na próbach.
No to jeżeli nie ogarniasz to nie rzucaj się od razu na głęboką wodę. Zrób tak jak napisałem - wrzuć bibliotekę do odpowiedniego folderu, potem albo skompiluj kod od Freddy'ego, albo na jego podstawie pisz po kawałku własny. Niskopoziomową obsługą lcd jeszcze zdążysz się zająć. I zapewne do tego czasu porzucisz bascoma na rzecz C.
Próbuję już na różne sposoby ,ale to jest ciężkie.
Powiedzcie mi w którym z tych plików , i gdzie ustawia się ,pod który port podpięty jest lcd.
PROSZĘ
Człowieku, zróbże wreszcie według moich i innych wskazówek i nie kombinuj.
Kazałem Ci zastosować bibliotekę, którą dostarczyłem, inni radzą to samo - i co ? dalej nic. Nie raczyłeś zrobić nic !
Porad udzielam wyłącznie na forum, nie pomagam na PW
Zanim zadasz pytanie, wiedz, że zostało już omówione tutaj, a 99% nie jest unikalne. Użyj wyszukiwania.
Freddy ten kod od Ciebie wklejam w okno jako nowy plik.Tworzy mi się noname.bas .
Noname.bas kompiluję. Czy prawidłowo? czy cały czas coś paprzę? aha i ten plik który mi podałeś LCD_epson.....LBX wrzuciłem do katalogu LIB.
Nie wiem co robię nie tak.
Eh w końcu coś wyświetlił ten lcd.ekran jest cały w kolorowych pixelach ,po zapodaniu tego kodu testowego:
Obrazek masz ?
Fonty 8x8 masz ?
Pokaż schemat podłączenia, tylko nie link do strony, tylko rzeczywisty Twój.
Porad udzielam wyłącznie na forum, nie pomagam na PW
Zanim zadasz pytanie, wiedz, że zostało już omówione tutaj, a 99% nie jest unikalne. Użyj wyszukiwania.
Witam
W końcu sobie jakoś poradziłem.Lcd miałem podpięty wg.strony:
http://www.superkranz.de/christian/S65_Display/DisplayIndex.html Niestety dla mojego lcd to zła konfiguracja.
Rezystory 470 miałem ,ale 610 om już nie więc dałem takie jakie miałem czyli SMD 820 om.Przy tej konfiguracji miałem kolorowy śnieg.Odpiąłem te 810 om od masy i dałem je bezpośrednio zn. szeregowo do lcd ,bez dzielenia napięcia.Lcd wstał ,wyświetla.Teraz spróbuję zrobić jakąś przetworniczkę z 5v na powiedzmy 11, 12v do podświetlenia lcd.Oprogramowaniem zajmę sie, jak zrobie podświetlenie.