Odpowiedz 
 
Ocena wątku:
  • 6 Głosów - 4 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
SQ9MDD Offline
Rysiek
****

Liczba postów: 380
Dołączył: 01-02-2009
Post: #40
RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO
Tak Przemek zdecydowanie masz rację, kilkakrotnie w swoich projektach otarłem się o ten problem. Dlatego zawsze staram się stosować różne zabiegi by nieco zaoszczędzić pamięć.

Kod:
const int jakas_zmienna = 123;
Zamiast:
Kod:
int jakas_zmienne = 123;

Oczywiście dla zmiennych które nie są modyfikowane w trakcie pracy programu.

Często też stosuje jeden bufor służący do printowania danych i zmieniam tylko jego zawartość. Jeden uniwersalny zajmuje często mniej miejsca niż pięć mniejszych do konkretnych celów.

Dodatkowym utrudnieniem jest też słabość środowiska arduino w tej kwestii. Nie posiada ono narzędzi do diagnostyki, debugowania.

Nasz program ten powyżej w tej chwili zużywa około 300 bajtów ramu z dostępnego obszaru 2kb.

Jest taki fajny kawałek kodu który pozwala ocenić wielkość dostępnej pamięci:

Kod:
int freeRam () {
  extern int __heap_start, *__brkval;
  int v;
  return (int) &v - (__brkval == 0 ? (int) &__heap_start : (int) __brkval);
}

Wystarczy gdzieś w głównej pętli wyprintować efekt działania tej funkcji.

...przede wszystkim nie zakłócać...
15-10-2014 18:52
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Wiadomości w tym wątku
RE: Fork-Heńka... czyli jak sobie poradzić z DDS za pomocą ARDUINO - SQ9MDD - 15-10-2014 18:52

Skocz do:


Użytkownicy przeglądający ten wątek: 34 gości