Brak pamięci w UNO, przejście na Mega i dalej program świruje. - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Brak pamięci w UNO, przejście na Mega i dalej program świruje. (/watek-brak-pami%C4%99ci-w-uno-przej%C5%9Bcie-na-mega-i-dalej-program-%C5%9Bwiruje) |
Brak pamięci w UNO, przejście na Mega i dalej program świruje. - darekdp - 04-05-2023 Witam wszystkich. Doszedłem w UNO do poziomu ok 14kB programu i ok 60% zmiennych. Ponieważ stosując wszystkie znane tricki zmniejszające zajętość pamięci, doszedłem do momentu, gdy dopisanie kilku linijek "na sztukę" powoduje świrowanie programu, zamieniłem płytke na Mega 2560. Teraz mam zajęte pojedyncze procenty a problem jest taki sam. Problem powoduje np. dopisanie Serial.print. Może to problem bibliotek ? Używam #include <LiquidCrystal_I2C.h> #include <EEPROM.h> #include <Timers.h> #include <OneWire.h> #include <DS18B20.h> #include <Wire.h> Może IDE źle kompiluje dla Mega? Pozdrawiam Darek RE: Brak pamięci w UNO, przejście na Mega i dalej program świruje. - MadMrQ - 04-05-2023 Bez kodu nie pomożemy... Chyba, że któryś z kolegów odpali szklaną kulę. Należy sprawdzić przede wszystkim, czy poszczególne części kodu nie wykorzystują tych samych zasobów (główny podejrzany to timer/timery). RE: Brak pamięci w UNO, przejście na Mega i dalej program świruje. - kaczakat - 04-05-2023 Wszystko zależy od programu, ale 14kb flash i 60% RAM to wcale nie jest dużo, a że o to nie chodzi to sam sobie odpowiedziałeś używając MEGA z 4x więcej RAM. Jak masz wątpliwości co do IDE to sobie odinstaluj i wgraj inną wersję. Jak się skompilowało to powinno działać tak jak program jest napisany. RE: Brak pamięci w UNO, przejście na Mega i dalej program świruje. - darekdp - 05-05-2023 Dzięki za podpowiedzi. Wyrzucę timery, zrobię ręcznie na millis-ach. Zobaczymy. Problem nie leży w kodzie. Dla przykładu układ sprawdza małą klawiatrurę i po naciśnieciu zaczyna odliczać np. od 15 (stała wartość) do zera co sekundę (odliczaną timerem). Po dodaniu linijki typu Serial.print, petla zaczyna "chodzić" sama, bez nacisniecia klawiatury i zaczyna liczyć od np. 65. Potem, żeby było śmieszniej, cały czas rozpoczyna co sekundę ponownie od 65 i nie zmniejsza licznika ( zwykłe zmniejszanie zmienna--). RE: Brak pamięci w UNO, przejście na Mega i dalej program świruje. - MadMrQ - 05-05-2023 Dej kod - ogarniem. RE: Brak pamięci w UNO, przejście na Mega i dalej program świruje. - darekdp - 07-05-2023 Ogarnąłem. Głupi błąd. float tablica[3] ma tylko 3 elementy, a nie 4. Dlatego nie lubię C, wolę Delphi, jako stary dziadek. |