Datensatz anlegen
-
Das wird so nicht funktionieren, du machst dir mit deinem Array mit hoher Wahrscheinlichkeit nur den Stack kaputt. Schau mal in deinen Startup-Code, da müsste diverse Anweisungen sein, wo welcher Speicher liegt. Im Idealfall fügst du dort deine Werte mit ein.
-
Oder willst du das Array global halten? Das wäre im Prinzip das selbe was dir vorgeschlagen habe. Nur einfacher.
1000 Werte passen mit hoher Sicherheit nicht auf den Stack eines µC. Nur als Info, weil der Compiler sagt dir das nicht. Du wunderst dich nur, warum nachher nichts funktioniert, weil sich der Speicher überlappt.
-
Was heisst global? volatile?
Geht auch global aber in der anderen Datei?
-
[quote="joe1234"]Was heisst global?[quote]
Außerhalb einer Funktion.volatile?
Das heißt, dass der Inhalt flüchtig ist.
Geht auch global aber in der anderen Datei?
Ja!
-
Wenn du es global in einer anderen Datei machen willst, dann musst du das Schlüsselwort extern verwenden. Wie auch immer, eventuell killst du den Stack mit dieser Menge an Daten.
#include <stdio.h> extern int vektor[5]; int main (void) { vektor[4]=5; printf("%i", vektor[4]); }
int vektor[5]={0,1,2,3,4};
-
HighLigerBiMBam schrieb:
eventuell killst du den Stack mit dieser Menge an Daten.
Mmh, da könntet ihr recht haben. Aber gibt es eine andere Möglichkeit so eine große Datenmenge anzulegen?
-
Auf dem Heap mit malloc/calloc!? Du musst es halt ausprobieren/testen.
-
Der µC hat doch sicher einen Flash-Speicher in dem du die Daten ablegen kannst.
-
Das kenne ich noch nicht. Kannst du vielleicht ein kleines Bsp liefern?
-
malloc/calloc
Das kenne ich noch nicht. Kannst du da ein Bsp dazu liefern?
-
joe1234 schrieb:
malloc/calloc
Das kenne ich noch nicht. Kannst du da ein Bsp dazu liefern?
-
Globale Variablen liegen nicht auf dem Stack. Ganz davon abgesehen, dass du nicht unbedingt eine Laufzeitbibliothek zur Verfügung haben musst (für malloc/free erforderlich), kannst du damit die Werte erst zur Laufzeit zuweisen.
-
Hi,
ich habe dazu im anderen Forum eine Frage gestellt und dort hat mich einer auf einen Link verwiesen, wo diese Aufgabe schon behandelt wurde.
Link: http://www.mikrocontroller.net/topic/204131#newTrotzdem Danke für eure Hilfe!
Gruß Joe