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.