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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

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