400 berechnete Werte abspeichern

Gast #481637
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
Gast #481674
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.
Gast #481718
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren