Czy istnieją uniwersalne biblioteki wspierające obsługę tego (lub innego rodzaju) wyświetlaczy?
Chodzi mi o sprawne rysowanie prymitywnych struktur geometrycznych (koła, elipsy, wypełnione figury) , wypełnianie obrazami? Ogólnie jakieś naprowadzenie na takie biblioteki byłyby mile widziane.
To działa po SPI, więc wg moich pobieżnych obserwacji demon prędkości to nie jest, ale do
prototypowania jak znalazł, bo przewodów nie trzeba wiele .
Niskopoziomowo to mam w miare opanowane, inicjalizacja, stawianie punktów w różnych kolorach etc...są do tego gotowce, coś tam skleciłem. Ale pisanie od zera czegoś, co ewentualnie może funkcjonuje w sieci wydaje się stratą czasu...
Istnieją ale sprzedawcy najczęściej nie wiedzą co sprzedają. To, ze piszą iz jest sterownik xxxx nie znaczy, ze taki będzie. Jesteś skazany na dochodzenie typu wyświetlacza metoda prób i błędów. Mnie się udało juz za piątym razem.
Podejdź do tematu z drugiej strony. Każda figura to zestaw punktów, czy to koło, elipsa, kwadrat. Podobnie jest z tekstem. Jeśli potrafisz zaincjować wyświetlacz i narysować jedne punkt to podpatrz funkcje dla innych wyświetlaczy. One niczym się nie różnią, zazwyczaj i tak sprowadzają się do narysowania odpowiedniej ilości punktów.
Oj, chyba się nie zrozumieliśmy. Ja niskopoziomowo to obczaiłem i punkty wyświetlać umiem, linie sobie napisałem, okręgi też, troszke trudniej z wypełnionymi figurami, ale też do ogarnięcia.
Pytanie moje dotyczy tego, czy aby nie jest tak, że to co teraz sobie skrzętnie piszę (i nie ukrywam, że sklecam z różnych wygooglanych przykładów) jest gdzieś już napisane w formie ładnej, rozbudowanej biblioteki, którą mogę sobie po prostu wrzucić w projekt i korzystać z czego tam chcę.
Nie znasz powiedzenia że jak coś jest do wszystkiego to jest do niczego Ja mam swoje funkcje, kiedyś tam napisane, podpatrzone i zmieniam tylko inicjacje oraz rysowanie punktu. Nigdy do projektu nie wklejam całej biblioteki tylko wybrane funkcje z których będę korzystał. Np. nie wklejam do projektu funkcji rysowania okręgów gdy będę korzystał tylko z trybu tekstowego .
To działa po SPI, więc wg moich pobieżnych obserwacji demon prędkości to nie jest
Wbrew pozorom SPI wcale nie musi być takie wolne. Zwykle kontrolery LCD pozwalają na transfer rzędu 1-2MB/s, a to już dla QVGA wystarczy, aby sensownie wyświetlać GUI.
Same funkcje kreślące prymitywy graficzne są dosyć uniwersalne i w miarę niezależne od użytego kontrolera. Aczkolwiek, jeśli kontroler ma jakieś dodatkowe bajery, to czasami można je mocno zoptymalizować. Zerknij do darmowych przykładów do mojej książki o LCD - masz tam wiele przykładów funkcji kreślących prymitywy graficzne z całkiem niezłą wydajnością.
Bardziej chodzi mi teraz o tekst. Potrzebuję większej czcionki. Mam takie wyświetlanie znaków (nie moje):
Code: c
Log in, to see the code
A tablica jest taka:
Code: c
Log in, to see the code
i próbuje rozkminić jak na podstawie tablicy 8x16 zrobić czcionki większe rozmiarowo. Chodzi o to, by interpolować piksele i zrobić np. 16x32 z wykorzystaniem tej tablicy, która jest.
i próbuje rozkminić jak na podstawie tablicy 8x16 zrobić czcionki większe rozmiarowo. Chodzi o to, by interpolować piksele i zrobić np. 16x32 z wykorzystaniem tej tablicy, która jest.
Z 8x16 zrobić 16x32 to prosto - wystarczy każdy p;iksel wyświetlać dwukrotnie w poziomie i dwukrotnie w pionie. Tyle, że wygląda to paskudnie i lepiej umieścić dodatkowy plik z czcionką 16x32.
Takoż uczyniłem, ale się nie chwalę, bo ... wygląda to paskudnie . Pogrzebałem trochę w necie i w sumie nie znalazłem Linuksowego narzędzia, które przerobi mi czcionki na tablice w C. Znalazłem jakieś Ghoscriptowe narzędzia, jednak niestety nie działają. Zna ktoś jakieś Linuksowe rozwiązanie?
Używam lcd image converter:
https://github.com/riuson/lcd-image-converter Bardzo fajne, bo można sobie stworzyć szablon eksportu pliku i program generuje plik wg tego co potrzebujesz. W dodatku ma ogromen możliwości przeksztaceń bitowych plików na różne formaty zapisu.
Do czcionek znalazłem ostatnio narzędzie o nazwie TheDotFactory.
Na plus jest to iż tworzy tablice czcionek o rożnej szerokości znaków, wymaga to co prawda trochę zmiany funkcji generującej znak ale efekt końcowy zadowala.
Np:
lcd image converter - bardzo ciekawy program, szczególnie do grafiki. Od razu można ustawić sobie zapis np RGB565.
FCh...ja z Pytona to wiem tyle, że istnieje ale dzięki.
tmf - skompilowałem lcd image converter - wygląda bardzo obiecująco. Biorę się za niego. Ale
bez przygotowania szablonu generowanego pliku się nie obejdzie, bo to, co generuje mi program
nie nadaje się wprost do zaincludowania projektu uC...
FCh...ja z Pytona to wiem tyle, że istnieje ale dzięki.
Warto się nauczyć - zrobiony dla celów projektu którym się aktualnie zajmuję konwerter grafiki na tablice w C, dokładnie takie jak są potrzebne, zajmuje 96 linii kodu Pythona. Na bazie skryptu dla obrazków mamy też skrypt dla czcionek (bazuje zasadniczo na plikach BDF, czyli czcionkach-bitmapach, ale nic nie stoi na przeszkodzie aby go rozbudować i użyć TTF czy czegokolwiek innego), który ma aż 87 linii kodu Pythona. Jak się nauczysz go trochę (a jest to prosty język), to nagle okazuje się, że te 10000 narzędzi które zwykle są "niezbędne" okazują się łatwe do zastąpienia bardzo prostymi skryptami w Pythonie. Żeby nie było - osobiście zacząłem się interesować Pythonem rok temu, wiec to nie jest język na opanowanie którego (w podstawowym stopniu) trzeba poświęcić 10 lat.
Tak BTW to opcja eksportu do tablic w C jest też w GIMPie.
Zdaję sobie sprawę, szczególnie że interesuje mnie obróbka obrazu, a to już OpenCV + jakieś PI i tam
Python jak najbardziej...życia brakuje i doby na to wszystko...ehh
To działa po SPI, więc wg moich pobieżnych obserwacji demon prędkości to nie jest, ale do
prototypowania jak znalazł, bo przewodów nie trzeba wiele .
Mam podłączony wyświetlacz na ILI9341 po SPI i bez problemu daje się wyciągnąć (jak pamiętam) 18 kl./s. Zegar SPI ma 50 MHz. Ale myślę że jeszcze można go przyspieszyć.
Mam podłączony wyświetlacz na ILI9341 po SPI i bez problemu daje się wyciągnąć (jak pamiętam) 18 kl./s. Zegar SPI ma 50 MHz. Ale myślę że jeszcze można go przyspieszyć.
Może kolega zanim coś napisze zajrzy do noty układu, w której jest napisane:
Tabela 19.3.3:
Serial Clock Cycle (Write) - 100 ns.
Czyli maksymalne taktowanie magistrali SPI to 10 MHz dla zapisu (dla odczytu ok. 7,5 MHz).
Mam podłączony wyświetlacz na ILI9341 po SPI i bez problemu daje się wyciągnąć (jak pamiętam) 18 kl./s. Zegar SPI ma 50 MHz. Ale myślę że jeszcze można go przyspieszyć.
Może kolega zanim coś napisze zajrzy do noty układu, w której jest napisane:
Tabela 19.3.3:
Serial Clock Cycle (Write) - 100 ns.
Czyli maksymalne taktowanie magistrali SPI to 10 MHz dla zapisu (dla odczytu ok. 7,5 MHz).
Muszę się przyznać, zrobiłem błąd - SPI jest taktowane z częstością 25 MHz. Dowód jest pod linkiem na dole mojego postu.
uszę się przyznać, zrobiłem błąd - SPI jest taktowane z częstością 25 MHz. Dowód jest pod linkiem na dole mojego postu.
Ale co to ma udowodnić? Że wiesz lepiej niż producent układu jakie są jego maksymalne możliwości? W nocie jest jasno napisane, że okres zegara SPI musi wynosić >100ns. O czym tu jeszcze dyskutować?
uszę się przyznać, zrobiłem błąd - SPI jest taktowane z częstością 25 MHz. Dowód jest pod linkiem na dole mojego postu.
Ale co to ma udowodnić? Że wiesz lepiej niż producent układu jakie są jego maksymalne możliwości? W nocie jest jasno napisane, że okres zegara SPI musi wynosić >100ns. O czym tu jeszcze dyskutować?
Nie wiem lepiej jakie są maksymalne możliwości ponieważ nie mam wglądu w projekt tego układu. Ale mam wystarczająco dużo doświadczenia aby nie wierzyć w to, co jest napisane w nocie i prócz tego umiejętności aby sprawdzić jak szybko taki układ będzie chodził. A o czym dyskutować? Ano o tym że da się uzyskać w tych wyświetlaczach szybszą transmisję a co za tym idzie szybsze odświeżanie.
Nie wiem jaki masz w tym cel aby udowadniać mi, że to co działa nie ma prawa działać. Nie rozumiem dlaczego nie potrafisz przyjąć tego do wiadomości i po prostu zaakceptować że tak może być. Czy masz jakieś problemy z przyznaniem się do niewiedzy na publicznym forum? Czy uważasz że to wpływanie negatywnie na Twój autorytet?
To tak, jakbyś się kłócił ze mną o to, że w mojej miejscowości nie może być słonecznie i +20 stopni bo Ty uważasz że np. wczesną wiosną takie temperatury są niemożliwe.
Nie wiem lepiej jakie są maksymalne możliwości ponieważ nie mam wglądu w projekt tego układu. Ale mam wystarczająco dużo doświadczenia aby nie wierzyć w to, co jest napisane w nocie i prócz tego umiejętności aby sprawdzić jak szybko taki układ będzie chodził. A o czym dyskutować? Ano o tym że da się uzyskać w tych wyświetlaczach szybszą transmisję a co za tym idzie szybsze odświeżanie.
To że działa na Twoim biurku, z Twoim egzemplarzem (lub kilkoma egzemplarzami), w danej temperaturze i wilgotności, przy danym prądzie i napięciu, przy konkretnych poziomach zakłóceń EMC w otoczeniu itd., to niewiele znaczy. Jeśli nie wierzysz, to jak potraktowałbyś kogoś, kto opowiadałby Ci, że sygnalizacja świetlna na skrzyżowaniu jest tylko dla takich którzy nie mają doświadczenia i wiedzy żeby sobie sami ocenić czy mogą przejechać, bo przecież dany rozmówca przejechał już parę razy na czerwonym świetle z pełną prędkością i nic się nie stało, a tym sposobem uzyskał szybszą transmisję swojej osoby do innego miejsca a co za tym idzie szybsze podróżowanie. Brzmi równie przekonująco? (;
Dodano po 1 [minuty]:
Pong.Chu wrote:
To tak, jakbyś się kłócił ze mną o to, że w mojej miejscowości nie może być słonecznie i +20 stopni bo Ty uważasz że np. wczesną wiosną takie temperatury są niemożliwe.
Bardziej jakbyś tym nam wmawiał, że wszędzie jest ciepło bo Ty się właśnie opalasz na tarasie.
Nie wiem jaki masz w tym cel aby udowadniać mi, że to co działa nie ma prawa działać. Nie rozumiem dlaczego nie potrafisz przyjąć tego do wiadomości i po prostu zaakceptować że tak może być. Czy masz jakieś problemy z przyznaniem się do niewiedzy na publicznym forum? Czy uważasz że to wpływanie negatywnie na Twój autorytet?
Kolego, to forum techniczne, a nie forum hokus-pokus. W technice stosuje się specyfikacje, wg których buduje się urządzenia. Gdyby kontroler mógł działać w całym gwarantowanym przez producenta przedziale z szybkością większą, to zapewne producent nie ograniczałby się, podając, że 10 MHz to max. Widać jakieś powody ma, aby parametry ograniczać. To, że ci to działa, to fajnie, ciesz się, że masz szczęście. Natomiast opieranie działania układu na szczęściu to nie jest poprawny sposób budowy czegokolwiek. Tu zrzut strony noty z parametrami:
Pong.Chu wrote:
Ale mam wystarczająco dużo doświadczenia aby nie wierzyć w to, co jest napisane w nocie i prócz tego umiejętności aby sprawdzić jak szybko taki układ będzie chodził.
Gratuluję ego. To pochwal się jakie to specjalne umiejętności posiadasz umożliwiające ci sprawdzenie szybkości działania układu? Proponuje też rebranding - kupuj te układy i sprzedawaj jako lepsze z nowymi parametrami, określonymi dzięki twoim specjalnym umiejętnościom. Sporo kasy można na tym zarobić.
To już mój 2. (jeśli nie trzeci) wątek, w którym się forumowicze kłócą. I to forumowicze elitarni.
Fatum jakieś?
Peace ! Przetaktowywać to sobie można sterownik światełek choinkowych. Do woli, choćby dla zdobycia doświadczeń i bez wdrażania w komercje, bo w zimie, na zewnątrz (u nas się mówi - na polu) może nie zadziałać i wróci z reklamacją
Sterownika łopat helikoptera już raczej się nie przetaktowuje. I już.
To że działa na Twoim biurku, z Twoim egzemplarzem (lub kilkoma egzemplarzami), w danej temperaturze i wilgotności, przy danym prądzie i napięciu, przy konkretnych poziomach zakłóceń EMC w otoczeniu itd., to niewiele znaczy.
Oczywiście że to nie jest dowód że będzie działał zawsze i wszędzie - wszak ja nigdzie nie powiedziałem że taktowanie SPI z taką częstością zachowa wszystkie inne parametry opisane w datasheet (jak zakres temperatur oraz napięcia). Natomiast to obala twierdzenie tmf że absolutnie jest to niemożliwe bo tak jest napisane w datasheet. Jak sam wiesz wystarczy jeden wynik przeczący dowolnej teorii aby tę teorię posłać do kosza.
Freddie Chopin wrote:
Dodano po 1 [minuty]:
Pong.Chu wrote:
To tak, jakbyś się kłócił ze mną o to, że w mojej miejscowości nie może być słonecznie i +20 stopni bo Ty uważasz że np. wczesną wiosną takie temperatury są niemożliwe.
Bardziej jakbyś tym nam wmawiał, że wszędzie jest ciepło bo Ty się właśnie opalasz na tarasie.
No widzisz - ale słabym punktem tego co mówisz jest to, że ja nigdzie nikomu nie wmawiałem że wszędzie jest ciepło Napisałem tylko że "u mnie jest ciepło".
Dodano po 10 [minuty]:
tmf wrote:
Kolego, to forum techniczne, a nie forum hokus-pokus. W technice stosuje się specyfikacje, wg których buduje się urządzenia. Gdyby kontroler mógł działać w całym gwarantowanym przez producenta przedziale z szybkością większą, to zapewne producent nie ograniczałby się, podając, że 10 MHz to max. Widać jakieś powody ma, aby parametry ograniczać. To, że ci to działa, to fajnie, ciesz się, że masz szczęście. Natomiast opieranie działania układu na szczęściu to nie jest poprawny sposób budowy czegokolwiek.
Ale to nie jest hokus-pokus - bowiem zostało to zweryfikowane doświadczalnie. Nawet Ty możesz sprawdzić, że kod które to realizuje nie jest żadnym hokus-pokus bowiem jest dostępny publicznie na git-hubie. Ja nigdzie nie twierdzę, że to będzie działało zawsze i wszędzie. Ale jak widać w warunkach domowych może działać - i działa. I co najważniejsze przeczy to Twojemu zdanie że nie ma prawa działać Niezależnie od tego jak będziesz się złościł i tupał nóżką mój wyświetlacz nadal działa....
tmf wrote:
To pochwal się jakie to specjalne umiejętności posiadasz umożliwiające ci sprawdzenie szybkości działania układu?
Wystarczy przeprowadzenie tzw. gate-level simulation. Narzędzie wykonującę syntezę danego układu cyfrowego a następnie implementację zsyntezowanego designu już w docelowej technologii (czy to FPGA różnych rodzajów czy dany proces produkcyjny półprzewodników) dostarcza informacji o działaniu zsyntezowanego układu w postaci netlisty oraz pliku czasowego np. w formacie standard delay format. To wystarcza do przeprowadzenia symulacji czy dany design po syntezie i implementacji będzie zachowywał się jak trzeba dla różnych parametrów temperatury i napięcia. Ale jak juz napisałem wcześniej - nie mam wgląd w projekt tego układu. Ale jak widać producent dosyć dobrze go zaprojektował bo przekraczając 2.5 krotnie specyfikowane parametry układ nadal działa. Na złość Tobie!