Forum: Mikrocontroller und Digitale Elektronik 400 berechnete Werte abspeichern


von MoritzH (Gast)


Lesenswert?

Hallo zusammen!
Ich habe ein kleines Problem mit einem PIC18F4550. Und zwar möchte ich 
ein Array mit 400 Werten des Typs "integer" abspeichern. Wo legt man das 
am Besten ab und wie macht man das, da das Array mit 400 Werte für eine 
Bank zu groß ist.
Am Stück lassen sich 120 Werte abspeichern, danach muss die Bank 
gewechselt werden mit dem Befehl "#pragma udata new_array" (Programmiert 
wird in C). Allerdings kann ich so nicht mehr als 2 Arrays erzeugen.
Kann mir jemand weiterhelfen?

Grüße,
MH

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Ich eknn mich mit PIC jezt nicht aus, aber ggf mußt du nen externes 
EEPROM anschließen.

von A.K. (Gast)


Lesenswert?

Das heisst, der Compiler unterstützt auch bei PIC18 keine Arrays grösser 
als eine Bank? Ein Grund mehr um PICs einen Bogen zu machen.

Wie sieht es aus, wenn du 4 Arrays zu 100 anlegst, und ein weiteres mit 
4 Pointern auf diese Arrays? Geht wenigstens das? Wenn nicht, wär's echt 
Zeit für einen Plattformwechsel.

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Ich würde die 400 Werte im linearen (Flash-) Programmspeicher ablegen 
und dann auslesen. So mache ich das in PicBasic.

von Dieter Werner (Gast)


Lesenswert?

PIC18er haben ja immerhin 3 FSR Pointer, mit denen der gesamte RAM 
Bereich ohne Banking angesprochen werden kann. Dass der Compiler so was 
nicht hinkriegt ist schon erbärmlich. Vielleicht liegt es auch an der 
Wahl des Memory-Model ?
Da bleib ich lieber bei ASM, auch wenn eines meiner Programme inzwischen 
15000 Zeilen groß ist.

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
Noch kein Account? Hier anmelden.