Hallo zusammen! Ich stehe momentan vor einem Problem, bei dem ich nicht weiss wie ich es lösen kann. Bis jetzt habe ich nur uC's von Atmel verwendet und bin denen von Microchip aus dem Weg gegangen. (Zum Glück) Nun zu meinem Problem: Zuerst einmal ich programmiere in C in MPLAB 8.66 und und benutze das C18 Toolchain. Mein Controler ist ein PIC18F45K22. Ich möchte nun ein zweidimensionales Array (64 x 24 8-bit Variablen) im Flash abspeichern. Dieses Array soll nach dem programmieren nur einmal geschrieben werden und später im Betreib nur noch asugelesen werden können. Wie kann ich am einfachsten ein Array im Flash abspeichern, ohne mir meine Programmdaten zu überschreiben? Wird das Flash bei einem erneuten Programmiervorgang (z.B. Softwareupdate) automatisch gelöscht? Danke für eure Antworten!
Marc Räz schrieb: > (Zum Glück) Was soll das heißen? >Wie kann ich am einfachsten ein Array im Flash abspeichern, ohne mir >meine Programmdaten zu überschreiben?
1 | const rom unsigned char Array2D[64][24] |
:
Bearbeitet durch User
> soll nach dem programmieren nur einmal geschrieben werden
Ähm... soll beim programmieren geschrieben werden? Oder wirklich erst
programmiert, im Betrieb einmal geschrieben und danach nur mehr gelesen?
@ Max H.: Danke dir, da hätte ich eigentlich selbst drauf kommen müssen. Kann ich dann das Array ganz normal auslesen, wie eine Variable, welche im RAM abgespeichert ist? Ja, diese Microchip-Controller und deren Datenblätter sind mir sehr unsympathisch, aber das ist halt Geschmacksache :-) @ Gast: Wenn möglich sollte das Array beim Programmieren in den Controller gebrannt werden und dann nur noch ausgelesen werden können. Sollte aber mit dem "rom" bei der Deklaration möglich sein oder sehe ich das falsch?
Marc Räz schrieb: > Sollte aber mit dem "rom" bei der Deklaration möglich sein oder sehe ich > das falsch? Ja, ich habe mit "const rom unsigned char" mal für ein Projekt den Zeichensatz für ein KS0108 LCD im rom gespeichert. Abgefunden wird es wie ein normales Array, man kann aber wie der Name sagt nur daraus Lesen.
Ja, macht man einfach mit dem "rom". Gibt nur ein Problem - das zieht sich dann durch alle Funktionen. Gibt z.B. ein strlen(char*) und strlen(rom char*).
@ Max H.: Okay, ich habe mein Array nun so deklariert, hat prima geklappt! Ich werde morgen die ersten Test machen und sehe dann, wie sich das ganze verhält. Vielen dank! @ Gast: Ja, von dem bin ich ausgegangen, aber danke für den Hinweis.
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.