Hallo, ich möchte gern mit einem Arduino Pro Mini ( ATMEGA 328 P 5V ) gemessene Temperaturwerte in einem Array im 2KByte RAM speichern und später wieder auslesen. Das haben sicher schon viele gemacht .... Jetzt würde mich interessieren wie groß dieses Array sein darf, da sicher Teile vom RAM schon vom Arduino-System für Variablen benutzt werden. Gibt es da eine Möglichkeit das unter der Arduino-Programmieroberfläche rauszubekommen? Den ATMEGA mit C oder Bascom zu programmieren möchte ich nicht, da ich für das verwendete Display ein vorhandene Arduino Bibliothek benutze. erstmal vielen Dank für alle Antworten
:
Verschoben durch Moderator
stefan baier schrieb: > Den ATMEGA mit C oder Bascom zu programmieren möchte ich nicht, da ich > für das verwendete Display ein vorhandene Arduino Bibliothek benutze. Dann benutze diese Bibliothek in der Arduino IDE und compiliere sie. Bei (hoffentlich) erfolgreichen Abschluss gibt dir die IDE eine Meldung aus wie gross der erzeugt Code (im Flash Speicher) und das benutze RAM ist. Da wir deine Bibliothek nicht kennen können wir nicht beurteilen wie die Speicherauslastung aussieht.
stefan baier schrieb: > Den ATMEGA mit C oder Bascom zu programmieren möchte ich nicht, da ich > für das verwendete Display ein vorhandene Arduino Bibliothek benutze. Aber eine Anwendung für dein eigentliches Vorhaben programmiert sich nicht von alleine .... es sei denn du lässt programmieren ...
Die Anwendung an sich funktioniert. Nach dem kompilieren bekomme ich nur das angezeigt: Binäre Sketchgröße: 12.056 Bytes (von einem Maximum von 30.720 Bytes) evtl. gibt es eine Funktion die die Größe des unbenutzen RAM ausgibt.
>evtl. gibt es eine Funktion die die Größe des unbenutzen RAM ausgibt.
Ja gibt es. Aber du willst ja nur die vorhandene Arduino Bibliothek für
das verwendete Display verwenden, die keiner außer dir kennt. Also such
einfach selbst in dieser Bibliothek nach einer Funktion die die Größe
des unbenutzen RAM ausgibt.
Wenn du weniger lernresistent wärst, könnte man dir andere Funktionen
empfehlen. Aber was solls, wenn du so stur bist?
Hallo Stefan, Du kommst dem freien Speicher schon ein wenig näher, wenn du die Belegung durch statisch angeforderten Speicher kennst. Die "kleinen" Programme tendieren ja dazu, im Wesentlichen statischen Speicher oder den Stack zu belegen. Beim Compile eines Arduino-Programmes wird in einem Temp-Verzeichnis eine zum Programm passende elf-Datei produziert. Aus der kann dann die größe des statisch reservierten RAMS mit dem Tool avr-size ermittelt werden. Beispiel bei mir auf dem Arbeitsrechner: C:\Temp\arduino-1.0.5\hardware\tools\avr\bin\avr-size -C --mcu=atmega328p C:\Users\alex\AppData\Local\Temp\build7991906938669831025.tmp\VierkanalS ender.cpp.elf Beitrag "avr-size: Wie groß ist das Programm denn nun wirklich?" http://rn-wissen.de/wiki/index.php/Speicherverbrauch_bestimmen_mit_avr-gcc Gruß Alexander
stefan baier schrieb: > Die Anwendung an sich funktioniert. Nach dem kompilieren bekomme ich nur > das angezeigt: dann scheint deine Arduino IDE Version zu alt zu sein, bei meiner 1.5.6-r2 gibt es zB diese Angaben zum Schluss: 'Der Sketch verwendet 4.554 Bytes (15%) des Programmspeicherplatzes. Das Maximum sind 28.672 Bytes. Globale Variablen verwenden 151 Bytes (5%) des dynamischen Speichers, 2.409 Bytes für lokale Variablen verbleiben. Das Maximum sind 2.560 Bytes.'
Jojo S. schrieb: > bei meiner 1.5.6-r2 gibt es zB diese Angaben zum Schluss: Mittlerweile gibt es eine Arduino IDE (nicht-Beta) v1.6
vielen Dank an alle ... ich hatte noch Version 1.0.5 ...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.