Skocz do zawartości

Jakie mniej pamięciożerne rozwiązanie ładowania bitmapy z czytnika SD - Arduino NANO


Kiko

Pomocna odpowiedź

Moja ekscytacja Arduino i jego możliwościami jakie oferuje po podłączeniu wszelkiej maści peryferii została ostudzona poprzez szybko kurczącą się pamięć wraz z ładowaniem bibliotek do tychże peryferii. O ile w prostych projektach typu stacje pogodowe czy sterowanie przekaźnikami itp.  zasoby były wystarczające, to przy próbie stworzenia własnej wersji gry z czasów PRL - Elektronika IM-2:Ну, Погоди! - czyli popularne "jajeczka" - po prostu zabrakło mi pamięci do wczytania grafiki i wyświetlenia jej na wyświetlaczu. Jestem początkującym programistą, pewnie niektóre rozwiązania w tej grze można by było zrobić inaczej - zużywają mniej zasobów - a może po prostu sam projekt jak na Arduino jest zbyt wymagający...? Bez obsługi SD i funkcji wczytania obrazka wolne zasoby to:

Szkic używa 20998 bajtów (68%) pamięci programu. Maksimum to 30720 bajtów.
Zmienne globalne używają 747 bajtów (36%) pamięci dynamicznej, pozostawiając 1301 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.

Po włączeniu funkcji obsługi SD i wgrania obrazka:

Szkic używa 33292 bajtów (108%) pamięci programu. Maksimum to 30720 bajtów.
Zmienne globalne używają 1477 bajtów (72%) pamięci dynamicznej, pozostawiając 571 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.

Korzystam z biblioteki SdFat.h oraz Adafruit_ImageReader.h. 

I pytanie zasadnicze - czy mając te 20998 bajtów wolnej pamięci jestem w stanie wgrać z czytnika bitmapę korzystając może z jakichś innych - mniej pamięciożernych bibliotek? 

20240624_083046.thumb.jpg.b5a36a5a43f9fc0cceb672ad5562183c.jpg

Link do komentarza
Share on other sites

Jeśli chcesz dalej działać w osmiobitowych mikrokontrolerach to są rodziny o większej pojemności ramu i flash. Atmega128 czy największy chyba AtMega1280. 

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

1 minutę temu, _LM_ napisał:

Jeśli chcesz dalej działać w osmiobitowych mikrokontrolerach to są rodziny o większej pojemności ramu i flash. Atmega128 czy największy chyba AtMega1280. 

Raczej skupię się na ESP - dużo szybszy, więcej zasobów - cena bardzo przystępna.

Link do komentarza
Share on other sites

3 godziny temu, ethanak napisał:

@rade jakie 2 MB? Użyteczne masz tyle ile jest, aplikacja nie powinna być większa niż 4 MB, jak masz więcej to można przeznaczyć na littlefs albo jakieś stałe dane. Skąd takie dziwne stwierdzenie?

Bez ręcznych kombinacji największy domyślny układ partycji to chyba ten z spiffs, ale fakt, pomijając to co można wyklikać, masz racje, że 4MB

  • Lubię! 1
Link do komentarza
Share on other sites

6 godzin temu, Kiko napisał:

I pytanie zasadnicze - czy mając te 20998 bajtów wolnej pamięci jestem w stanie wgrać z czytnika bitmapę korzystając może z jakichś innych - mniej pamięciożernych bibliotek? 

Co to za grafika? Jedne da się BARDZO kompresować, inne słabo.

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.