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

Nano ma 32KB pamięci Flash, gdzie ESP32 ma 4MB z czego użyteczne ~2MB, odpowiedz sobie sam czy dobrze wybrałeś kontroler do takich zabaw 😉

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

Oczywiście już wiem, że Nano to pomyłka w tym przypadku. Zamówiłem w piątek ESP i czekam dzisiaj na przesyłkę...

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

@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?

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

@rade ja korzystam ze swoich, ale w boards.txt dla 4 MB jest coś takiego:

esp32.menu.PartitionScheme.huge_app=Huge APP (3MB No OTA/1MB SPIFFS)

Ciekawe czemu nie dla wszystkich płytek...

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