Skocz do zawartości

Przekażniki sterowane RTC z pobieraniem danych z karty SD-jak zoptymalizować kod do NANO/UNO


czosnekltd

Pomocna odpowiedź

Witam

To mój pierwszy projekt na Arduino który ma jedno zadanie: włączanie/wyłączanie przekaźnika o określonych godzinach i w konkretnych dniach. Aby móc zmieniać godziny bez podpierania się zmianami sketcha i wgruwaniem go do mokroprocesora, postanowiłem wykorzystać czytnik kartSD z którego Arduino ma pobierać dane wejściowe (dzień tygodnia, godzinę minutę i sekundę włączenia/wyłączenia) z pliku setting6.txt o następującej treści:

exINT-2=0:23:59:15:111
exINToff-2=0:0:0:11:222
exINT-3=0:23:59:25:333
exINToff-3=0:0:0:1:444

Na wstępie zmodyfikowałem sketch ze strony Korneliusza Jarzebskiego https://github.com/jarzebski/Arduino-DS3231 i powstał program który w zadanych czasach włącza/wyłącza odbiorniki podpięte pod przekaźniki:

Następnie powstał drugi program który pobiera dane wejściowe (int nralarm, int DayOfWeek (dow), int godzina, int minuta, int sekunda).

Gdy oba programy udało się wstępnie skończyć, powstał poniższy zlepek programu, który działa poprawnie ale tylko na Arduino_Mega. W założeniu układ ma pracować na NANO/UNO ale

ArduinoIDE przy wgrywaniu sketcha do UNO/NANO informuje o małej ilości pamięci, i możliwej niestabilności.

Po uruchomieniu programu na ArduinoNANO kod się wykrzacza 🙁 .

Szkic używa 22 122 bajtów z (68%) pamięci programu. Maksimum to 32 256 bajtów.

Globalne zmienne używają 1 642 bajtów z (80%) dynamicznej pamięci, pozostawiając 406 bajtów dla lokalnych zmiennch. Maksimum to 2 048 bajtów.

Low memory available, stability problems may occur.

Skecz programu w załączniku.

I tu jest moje zasadnicze pytania:

1)Jakie mogą być ewentualne sposoby na zminimalizowanie zajętości pamięci w tym konkretnym kodzie?

2)Czy pomocne byłoby zapisywanie zmiennych do EEPROMu? -wg mnie program ma potencjał....można dopisać kolejne alarmy aż do wyczerpania wyjść NANO/UNO ale skoro już teraz, przy 4 alarmach jest problem z pamięcią.....?!?!.

3)Proszę o ewentualne sugestie dotyczące optymalizacji tego kodu.

Pozdrawiam

Tomek

txtToSettings6_i_timer2a-temp-optymalizacja.zip

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.