Skocz do zawartości

Szybka Grafika na Wyświetlaczach RGB


deshipu

Pomocna odpowiedź

Szukałem, nie ma;-P W stm z użyciem DMA takie duszki mogłyby świetnie działać. Ogólnie biblioteki na arduino są napisane strasznie wolno, gdyż muszą poprawiać "programistę" oraz być bardzo uniwersalne. Np takie Adafruit GFX wyciąga abs() z uint_16t - co niby ma dac ta funkcja na takiej zmiennej?  Spodziewają się ujemnej wartości w uint? Dodatkowo nie używają funkcji wyświetlacza tylko liczą wszystko wewnętrznie, zmieniając co chwile pozycję kursora itd. 

Jest dużo modułów z 8 bitowa, oraz nawet 16 bitowa szyna. 4" ips wyświetlacze na ali np.

Edytowano przez Ogyb
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dnia 29.01.2019 o 12:42, deshipu napisał:

Okazuje się, że częściowo winę ponosi dosyć wolne taktowanie SPI w Arduino

Częściowe? Realna przepływność SPI przy taktowaniu 8MHz to ok 4MHz. W uC z wykorzystaniem DMA, nie ma problemu aby "wycisnąć" max możliwości SPI sterownika wyświetlacza, przeważnie 15MHz czyli prawie 4 razy szybciej niż na AVR.

 

Dnia 29.01.2019 o 12:42, deshipu napisał:

Pierwszym podejściem jest użycie bufora — wielkości całego ekranu, lub, jeśli brakuje nam na to pamięci — części ekranu. ...)

Niestety podejście to ma dwie duże wady: po pierwsze, wymaga gigantycznych, jak na możliwości mikrokontrolerów, ilości pamięci RAM

Mikrokontrolery z kilkuset kB RAM nie są rzadkością a i 1M jest osiągalny.

 

Dnia 29.01.2019 o 12:42, deshipu napisał:

Mamy dwie możliwości operacji graficznych: zmiana zawartości kafelka, lub zmiana zawartości lub położenia duszka. W pierwszym przypadku, brudnym blokiem jest obszar zajmowany przez kafelek, w drugim — obszar zajmowany poprzednio przez duszka, połączony z obszarem zajmowanym przez jego nową pozycję.

W każdym z tych przypadków, tworzymy w pamięci bufor wielkości naszego brudnego prostokąta i wypełniamy go odpowiednią grafiką. Mamy tutaj dwie możliwości, które mogą działać lepiej lub gorzej w zależności od specyfiki systemu.

Po co kombinować gdy można użyć sterownika FT8xx? Dla wyświetlaczy ze sterownikiem też jest rozwiązanie https://forum.elportal.pl/viewtopic.php?f=62&t=14998 gdzie bez problemu można obsłużyć duszki.

2 godziny temu, Zealota napisał:

Może to będzie odpowiednie:

W porównaniu do Adafruit rewelacja ale widać, że AVR ledwo dyszy (mała płynność animacji) i 100% mocy przeznacza na grafikę. Co z resztą zadań gdy 100% zużywa grafika?

Do tego co można osiągnąć na FT8xx daleka droga i nie oszukujmy się, AVR nie ma szansy aby zbliżyć się do rozwiązań z DMA i dużym buforem RAM. To jest nawet osiągalne dla Xmega ale cenowo wyjdzie pewnie 2 razy drożej niż ARM (w Xmega najczęściej wymagany zewnętrzny RAM).

Link do komentarza
Share on other sites

Od ft8xx dużo taniej i sprawniej wyjdzie np jakiś stm32h7 czy coś podobnego (do kupienia za 30zł 1M RAM + akceleracja 2D i 400 MHz rdzenia + fpu). Xmega ma jakąś przewagę nad ARM? Cokolwiek? Ani to podobne w programowaniu do Atmega ani tanie... Przy wykorzystaniu paru % rdzenia można animować Chrom-ART daje nam mieszanie obrazów itd. DMA2D wysyła bufor, sprzętowe dekodowanie JPEG. 

Link do komentarza
Share on other sites

5 minut temu, Ogyb napisał:

Od ft8xx dużo taniej i sprawniej wyjdzie np jakiś stm32h7 czy coś podobnego

Naturalnie ale w wątku jest mowa o Arduino co najczęściej jest rozumiane jak AVR. Nawet jak nie AVR to Arduino libs. Znasz biblioteki dla Arduino, które obsłużą DMA2D czy choćby DMA do transferu danych do sterownika wyświetlacza z wykorzystaniem FCM albo wbudowany sterownik wyświetlacza np w F429? Ja nie znam i nigdy o czymś takim nie słyszałem natomiast dla FT8xx EVE wygeneruje kod dla Arduino.

Link do komentarza
Share on other sites

Największym bólem większości jeżeli nie wszystkich wyświetlaczy z interfejsem szeregowym, jest brak wyprowadzenia sygnału RF sterownika LCD, co uniemożliwia synchronizację zapisu do bufora, z "powrotem pionowym".
Tak czy siak pisanie gier, to swego rodzaju "sztuka oszukiwania", aby omijać pewne ograniczenia sprzętowe i programowe w sumie też.

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.