Hallo Ich versuche grade den Atmel Beispiel Code für das PS2 Keyboard nach avr-gcc zu portieren, es ist eigendlich schon fertig aber in einem der Files wird der Type flash benutzt: flash unsigned char unshifted[][2] = { ............ } der Soll das arry direkt in den flash legen, das macht doch der gcc generell oder gibt es einen ähnlichen Befehl? Gruss Sven. PS: Kann es im Moment nur Compiler testen ...
Hallo Sven, im avr-libc Manual ist es beschrieben, unter: Modules --> Program Space String Utilities Aber beim zugriff die Macros nutzen. Beschreibung an gleicher Stellt. Mfg Wolfgang
Hallo Wolfgang, eigentlich müste doch meine Frage hinfällig sein, denn das array wird doch nicht in den RAM kopiert, oder? so sieht das Original aus. flash unsigned char unshifted[][2] = { ............ } ich würde jetzt folgendes Schreiben unsigned PGM_P unshifted[][2] = { ............ } dabei habe ich aber das Problem es jetzt ein Pointer ist. so sieht z.B. der Zugriff aus: for(i = 0; unshifted[i][0]!=sc && unshifted[i][0]; i++); Gruss Sven
Du musst das so machen: Deklaration/Definiton: static const unsigned char unshifted[][] PROGMEM = { ... }; PGM_VOID_P index= unshifted; Zugriff mit: pgm_read_byte( unshifted++ );
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.