hallo, ich habe eine Frage.Kann man überhaupt einen define String im flash speichern? #define ERROR0 "data out of range" #define ERROR1 "length out of range" ich meine die einzelne define zuerst im flash anlegen und dann das Array im Flash speichern. const uint8_t error[] PROGMEM={ERROR0 , ERROR1}
> const uint8_t error[] PROGMEM={ERROR0 , ERROR1}
ERROR0 und ERROR1 sind nur Präprozessor-Symbole, die zur Compilezeit
durch das jeweilige Stringliteral ersetzt werden.
Im Binary bzw. Hex-File landet Folgendes:
const uint8_t error[] PROGMEM={"data out of range" , "length out of
range"}
Anzumerken sei noch, daß das Schlüsselwort PROGMEM nur bei der Harvard-Architektur erforderlich ist, die die AVRs leider verwenden. Bei anderen Controllern mit von-Neumann-Architektur, wie z.B. MSP430, genügt die Angabe des Schlüsselworts const, damit der Linker die Daten im Programmspeicher unterbringt, und auch die Lesezugriffe auf diese Daten müssen nicht anders gehandhabt werden als die auf "normale" Daten.
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.