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
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.
Ich würde die 400 Werte im linearen (Flash-) Programmspeicher ablegen und dann auslesen. So mache ich das in PicBasic.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.