Forum: Compiler & IDEs const unsigned char[] macht ärger beim ATmega162 / GCC Comp


von Martin Raffelsieper (Gast)


Lesenswert?

Hallo zusammen

Folgende Konstruktion macht etwas Ärger:

const unsigned char CharMask[] = { 0x01, 0x02, 0x04, 0x08,
                                   0x10, 0x20, 0x40, 0x80
                                 };

sollte doch eigentlich 1:1 im (programm-)Speicher landen und als maske
für allerlei Bitoperation herhalten können. Tatsächlich aber ist
CharMask mit Datenmüll gefüllt. Hat jemand eine Idee, was ich mal
wieder falsch mache??

Gruß Martin

von BAB (Kai K.) (Gast)


Lesenswert?

#include <avr/pgmspace.h>

prog_char CharMask[] = { 0x01, 0x02, 0x04, 0x08,
                         0x10, 0x20, 0x40, 0x80
                       };

zum lesen:
PRG_RDB(&CharMask[0]);

von Martin Raffelsieper (Gast)


Lesenswert?

hmm,

danke für den Tip, aber das klappt leider auch nicht, jetzt landen
lauter Nullen in CharMask!

von BAB ( Kai K. ) (Gast)


Lesenswert?

hmm poste mal deinen code...
bei mir gehts..hab allerdings noch nicht die ganz aktuelle version von
winavr

von Martin Raffelsieper (Gast)


Lesenswert?

hmm,

ich wundere mich halt, weil doch meine konstruktion

const unsigned char CharMask[] = { 0x01, 0x02, 0x04, 0x08,
                                   0x10, 0x20, 0x40, 0x80
                                 };

eine normale C-Syntax ist, die jeder Compiler versteht - nur der GCC
nicht.

Gruß Martin

von BAB (Kai K.) (Gast)


Lesenswert?

schau mal in die aktuelle avr libc doku...

dort habe ich was von einer neuen pgmspace.h gesehen mit neuen
funtionen.

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
Noch kein Account? Hier anmelden.