Skocz do zawartości

Szybka Grafika na Wyświetlaczach RGB


Pomocna odpowiedź

  • 10 miesiące później...
(edytowany)

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
Dnia 29.01.2019 o 21:40, msalamon napisał:

Znasz jakiś dobry przykład implementacji Sprite'a? Chodzi mi o kod źródłowy oczywiście 🙂

Może to będzie odpowiednie:

 

 

  • Lubię! 1
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).

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. 

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.

  • 3 tygodnie później...

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ż.

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...