Skocz do zawartości
RFM

Podłączanie wyświetlaczy TFT do Arduino - krok po kroku

Pomocna odpowiedź

Pozwoliłem sobie przytoczyć nowy temat na "Elektrozgrozie" oraz zacytować fragment

Biblioteka jest kontynuacją bibliotek, takich jak ITDB02_Graph, ITDB02_Graph16 czy RGB_GLCD, jakie dostępne były dla Arduino i chipKita. Wraz z rosnącą liczbą wspieranych wyświetlaczy i kontrolerów ekranów nadszedł czas na stworzenie jednej uniwersalnej biblioteki. W ten sposób łatwiej jest utrzymywać kod programu.(...) Biblioteka wspiera wyświetlacze z interfejsem równoległym - 8- i 16-bitowym - oraz interfejsem szeregowym. Współpracuje z modułami Arduino, chipKit i niektórymi LaunchPadami od Texas Instruments.

Cały tekst dostępny https://www.elektroda.pl/rtvforum/topic3628217.html

Jak działają biblioteki? Można zobaczyć na YT:

Bitmapa rysowana jest w widoczny sposób a gra reaguje z dużym opóźnieniem, widać artefakty odświeżanie ekranu to chyba 3 FPS a CPU obciążony w 100%. Biblioteki nie używają, w przypadku wyświetlacza na filmie, sprzętowego dostępu do magistrali I8080 (XRAM) lecz generują programowo sygnał CS, WR i A0 po zapisie do portu. Tryby 16-bit w bibliotekach to fikcja, bo dostęp jest na dwa razy. A może być inaczej np jak tu

W miarę jak będą powstawać wersje dla wyświetlaczy o większych rozdzielczościach będę udostępniał filmy na kanale  https://www.youtube.com/channel/UCQ3i4KfWue2P4r8PTMODyHw Pewne jest to, że dopalacze powstaną ale czy będą dostępne w sprzedaży w formie gotowego urządzenia tego nie wiadomo, bo zależy od zainteresowania.

Udostępnij ten post


Link to post
Share on other sites

A do czego służy ten temat? Masz jakiś problem, szukasz porady?

Bo krytykowanie innych chyba nie jest zgodne z PPF - jeśli nie odpowiada ci biblioteka, to jej nie używaj, proste.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Inaczej: w moim świecie widząc błąd zgłaszam go autorom. Najlepiej dołączając rozwiązanie... 

No ale GPLowcy to całe zło świata.

Udostępnij ten post


Link to post
Share on other sites
28 minut temu, Elvis napisał:

Masz jakiś problem, szukasz porady?

Jeśli nie odpowiada ci biblioteka, to jej nie używaj,

Szukam porada, jak przyspieszyć wyświetlanie? Co do bibliotek, alternatywy nie ma i co mam zrobić? Poprawić biblioteki nie potrafię, co w takiej sytuacji?

W wątku na Elektrodzie @tmf stwierdza

że nawet na poczciwym AVR można zrobić interfejs o rząd wielkości szybszy. Jednak korzystanie z takich procków jak AVR z LCD QVGA wymaga jednak zdecydowanie lepszej optymalizacji kodu, w przeciwnym przypadku efekty są słabe - jak na filmiku. W praktyce trzeba przepisać kod obsługi interfejsu SPI lub interfejsu równoległego do LCD, napisać sensowne niskopoziomowe funkcje odpowiedzialne za rendering fontów, operacje bitblokowe itd.

ale chyba nie wie o czym pisze. W jego książce o wyświetlaczach też można wyczytać "ciekawe" stwierdzenia w rodzaju interfejs SPI jest szybszy od równoległego. Chyba wypowiedzi @tmf należy traktować z przymrużeniem oka.Twierdził, że bez problemu zaemuluje ZX Spectrum na AVR 20MHz. Po krótkim czasie, że na Xmega 32MHz. Później chciał się o to zakładać ale gdy został uświadomiony przez innych użytkowników, że się nie da, to z zakładu się wycofał.

Pomijamy więc herezje @tmf, inny użytkownik (@khoam) napisał o bibliotekach https://github.com/lexus2k/ssd1306  Wypróbowałem je kiedyś i są trochę lepsze jeśli chodzi rysowanie czcionek.Co do linii, wypełniania obszarów to tylko w przypadku nielicznych wyświetlaczy, które potrafią robić to sprzętowo.

W praktyce więc, AVR i wyświetlacz TFT to nieporozumienie co jest wyjaśnione w wątku https://www.elektroda.pl/rtvforum/topic3628217.html, do którego kieruje @khoam. Jeśli jest inaczej, to proszę o bibliotekę, która pozwoli na efekty, które zaprezentowałem na moim kanale YT.

 

Udostępnij ten post


Link to post
Share on other sites

@RFM może w takim razie warto skonfrontować swoje wątpliwości bezpośrednio z użytkownikiem tmf z Elektrody? Omawianie tego tutaj raczej nic nie da, skoro autor nie będzie mógł odnieść się do uwag na temat jego wypowiedzi lub książki 🙂

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites
1 godzinę temu, Treker napisał:

@RFM może w takim razie warto skonfrontować swoje wątpliwości bezpośrednio z użytkownikiem tmf z Elektrody? Omawianie tego tutaj raczej nic nie da, skoro autor nie będzie mógł odnieść się do uwag na temat jego wypowiedzi lub książki 🙂

Konwersacja z @tmf jest bezcelowa. Gdybym napisał to co tu na Elektrodzie, zostało by skasowane a użytkownik dostaje bana, niczym na forum Atnel.

Udostępnij ten post


Link to post
Share on other sites

W takim razie proponuję zakończyć dyskusję, jeśli jej celem jest "obgadywanie innych osób". Zachęcam do publikowania merytorycznych postów, ale kolejne wpisy tego typu będą trafiać do kosza.

  • Lubię! 2

Udostępnij ten post


Link to post
Share on other sites

Merytorycznie:

  • Interfejs równoległy wyświetlacza jest szybszy od szeregowego.
  • Rozwiązania sprzętowe interfejsów są szybsze od programowych.
  • Jeśli uC jest powolny sytuację ratuje sprzętowe rysowanie linii, figur, wypełnianie obszarów przez wyświetlacz czy też wbudowana czcionka ale to opcja rzadko spotykana przeważnie w wyświetlaczach o małej rozdzielczości.
  • Interfejsy w wyświetlaczach, najczęściej są zoptymalizowane tak, aby uzyskać odświeżanie ok 30ms, jeśli więc SPI w wyświetlaczu pracuje z zegarem max 15MHz a AVR wysyła realnie 4MHz, nie ma co liczyć na dobre odświeżanie, brak artefaktów itp. To samo z trybem równoległym, cykl WR 10ns (10MHz) a AVR realnie ok 3-4MHz.
  • Transmisja danych do wyświetlacza w 25-33ms zapewnia brak artefaktów, nie widać rysowania elementów obrazu,do 40ms jest całkiem dobrze, ponad 100ms wyraźnie wydać kasowanie ekranu, wypełnianie dużych obszarów, rysowanie dużej czcionki. Ponad 300ms to już tylko demo nienadające się, poza szczególnymi przypadkami, do praktycznego zastosowania.
  • Czasem rozwiązaniem zbyt długiego czasu transmisji danych do wyświetlacza jest podwójne buforowanie, opcja rzadko spotykana.
  • Biblioteki z Adafruit, czy to dla AVR, czy dla ARM, czy dla RPi nie nadają się do praktycznego zastosowania. Są pisane bardzo nieoptymalnie. Modyfikując je można uzyskać przyspieszenie 10 razy a nawet więcej.
  • Najlepiej aby w uC mieścił się bufor ekranu. Niestety, najmniejszy mi znany wyświetlacz 96x64 wymaga ponad 12kB danych co ogranicza AVRmega do mega1284.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Cóż z tego co się zorientowałem to projekt kolegi, trafi na łamy Elektroniki Dla Wszystkich, i zapewne jako kit AVT. Mimo że każdy patrzy, na ten "Akcelerator 2D" przez pryzmat swoich doświadczeń, czy wymagań to dajmy może się temu projektowi wykazać, i samemu bronić. Tak czy siak nie zaorujmy czyjejś pracy, bo nie pasuje do naszych marzeń.

Dziś mamy taką mnogość różnych rozwiązań do dyspozycji, że powinniśmy się cieszyć, że ktoś, chce zaprezentować swoje. 

Edytowano przez BlackJack

Udostępnij ten post


Link to post
Share on other sites

Wg. mnie bez sensu, tym bardziej, że na stmy można pod arduino programować a niektóre płytki z stm mają nawet wyprowadzenia tak samo jak w arduino porobione więc nie widzę problemu, żeby cały projekt zrobić na stm no ale.. zawsze jest jakieś ale więc być może komuś się to do czegoś przyda. Pytanie tylko komu, ano komuś kto nie wie, że może stma programować niemal tak samo jak atmegę w arduino bo tak jest łatwiej i mimo, że arduino nie jest optymalnie napisane na stmach tego nie widać aż tak bardzo jak na atmegach.  Poza tym różnicą są tylko większe możliwości z których nie trzeba korzystać jak się nie chce, nie umie. Ten sam framework, te same funkcje, te same biblioteki i 10x szybszy procesor, 100x więcej pamięci 1000x większe możliwości a cena podobna.

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Cóż przyznaję że autor projektu ma specyficzne podejście do publikacji swoich prac, ale nie każdy wynalazca jest dobrym menadżerem czy mówcą. Ale też nie jest to nikt świeży na forum, więc chyba jego merytoryka jest znana większości, może lepiej odpuścić, niż nakręcać atmosferę ? 🙂

Zresztą z tego, co zrozumiałem intencje autora projektu, jest on przeznaczony dla użytkowników ARDUINO UNO, których, wiedza, umiejętności i zapał, kończą się na łączeniu ze sobą gotowych klocków, najlepiej według kolorowej instrukcji jak do LEGO. Smutne jest to, że niestety, część użytkowników ARDUINO, to własnie ten poziom. 😞

 

Edytowano przez BlackJack
  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...