Gast
#4484109
Hallo Foristen,
ich habe folgendes C-Code Fragment in einen Programm für einen 16-Bit
PIC24-µC.
typedef unsigned char BYTE;
#define REVISION {0x32,0x45,0x43,0x14,0x0A,0x42,0x02,0x00}
BYTE buff[8] = REVISION;
dieser C-Code funktioniert so wie es ist im XC16 v1.24 Compiler.
Dieses Fragment sollte später auch auf einen PIC32 mit XC32 Compiler
v1.4 eingesetzt werden.
Im XC32-Compiler funktioniert dieses Fragment so nicht. Die Werte aus
REVISION werden den Array nicht übergeben.
Auch das Deklarieren und initalisieren eines Byte-Array so wie hier nach
C99-Standard
BYTE testarray[] = {0x00, 0x01, 0x02, 0x03};
funktioniert nicht. Die Werte werden so in das Array nicht übernommen,
es sind stets Zufallswerte eingetragen auch nicht bei
BYTE testarray[] = {0, 0, 0, 0};
Aber das Initalisieren mit Zeichen funktioniert so wie hier.
BYTE testarray[] = {'1', '2', '3', '4'};
Das ist aber nicht das gleiche!
Ich habe das nun so gelöst und das funktioniert auch so.
BYTE buff[8];
buff[0]=0x32;
buff[1]=0x45;
buff[2]......
.............
Was mache ich an oberer Stelle falsch?
Liegt es am Compiler, dass das Array wie oben nicht so deklariert und
initalisiert werden kann?
Mit freundlichen Grüßen.