Expected '}' before numeric constant

Magikscubes -  
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,



Configuration: Windows / Chrome 87.0.4280.88


J'ai une erreur sur un programme Arduino, je souhaiterai savoir si c'est possible de le résoudre.
voila mon programme : (l'erreur se trouvant a #define data_ascii_A 0x02,0x0C,0x18,0x68,0x68,0x18,0x0C,0x02)
#define display_array_size 8
#define data_null 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#define data_ascii_A 0x02,0x0C,0x18,0x68,0x68,0x18,0x0C,0x02
#define data_ascii_C 0x00,0x3C,0x66,0x42,0x42,0x42,0x2C,0x00
#define data_ascii_D 0x00,0x7E,0x42,0x42,0x42,0x66,0x3C,0x00
#define data_ascii_E 0x00,0x7E,0x52,0x52,0x52,0x52,0x52,0x42
#define data_ascii_I 0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00
#define data_ascii_R 0x41,0x21,0x11,0x39,0x41,0x41,0x41,0x7f
#define data_ascii_0 0x7f,0x41,0x41,0x41,0x41,0x41,0x41,0x7f
#define data_ascii_M 0x41,0x41,0x41,0x41,0x41,0x49,0x55,0x63
// display array
byte data_ascii[][display_array_size] =
{
data_null,
47
data_ascii_A, data_ascii_R, data_ascii_C, data_ascii_D, data_ascii_E, data_ascii_I, data_ascii_0, data_ascii_M};
const int row1 = 2;
const int row2 = 3;
const int row3 = 4;
const int row4 = 5;
const int row5 = 17;
const int row6 = 16;
const int row7 = 15;
const int row8 = 14;

const int col1 = 6;
const int col2 = 7;
const int col3 = 8;
const int col4 = 9;
const int col5 = 10;
const int col6 = 11;
const int col7 = 12;
const int col8 = 13;
void displayNum(byte rowNum,int colNum)
{
int j;
byte temp = rowNum;
for(j=2;j<6;j++)
{
digitalWrite(j, LOW);
}
digitalWrite(row5, LOW);
digitalWrite(row6, LOW);
digitalWrite(row7, LOW);
digitalWrite(row8, LOW);
for(j=6;j<14;j++)
{
digitalWrite(j, HIGH); }
switch(colNum)
48
{
case 1: digitalWrite(col1, LOW); break;
case 2: digitalWrite(col2, LOW); break;
case 3: digitalWrite(col3, LOW); break;
case 4: digitalWrite(col4, LOW); break;
case 5: digitalWrite(col5, LOW); break;
case 6: digitalWrite(col6, LOW); break;
case 7: digitalWrite(col7, LOW); break;
case 8: digitalWrite(col8, LOW); break;
default: break;
}
for(j = 1 ;j < 9; j++)
{
temp = (0x80)&(temp) ;
if(temp==0)
{
temp = rowNum<<j;
continue;
}
switch(j)
{
case 1: digitalWrite(row1, HIGH); break;
case 2: digitalWrite(row2, HIGH); break;
case 3: digitalWrite(row3, HIGH); break;
case 4: digitalWrite(row4, HIGH); break;
case 5: digitalWrite(row5, HIGH); break;
case 6: digitalWrite(row6, HIGH); break;
case 7: digitalWrite(row7, HIGH); break;
case 8: digitalWrite(row8, HIGH); break;
default: break;
}
temp = rowNum<<j;
}
}
void setup(){
int i = 0 ;
for(i=2;i<18;i++)
{
pinMode(i, OUTPUT);
}
for(i=2;i<18;i++) {
digitalWrite(i, LOW);
49
}
}
void loop(){
int t1;
int l;
int arrage;
for(arrage=0;arrage<10;arrage++)
{
for(l=0;l<512;l++)
{
for(t1=0;t1<8;t1++)
{
displayNum(data_ascii[arrage][t1],(t1+1));
}
}
}
}

2 réponses

NHenry Messages postés 15221 Date d'inscription   Statut Modérateur Dernière intervention   366
 
Je remarque juste que sur :
#define data_null 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
#define data_ascii_A 0x02,0x0C,0x18,0x68,0x68,0x18,0x0C,0x02

Le premier tu as mis des espaces entre les valeurs et pas à la ligne suivante.

0
Dalfab Messages postés 706 Date d'inscription   Statut Membre Dernière intervention   101
 
Bonjour,

Les espaces n'ont aucune signification particulière en C, par contre tu as oublié de mettre une virgule après le 47 et il faut aussi mettre les 7 autres nombres qui manquent; A moins que 47 ne soit de trop. Une autre notation possible (elle insérera 7 valeurs nulles après le 47) :
byte data_ascii[][display_array_size] = 
{
    {data_null},
    {47},
    {data_ascii_A}, {data_ascii_R}, {data_ascii_C}, {data_ascii_D}, {data_ascii_E}, 
    {data_ascii_I}, {data_ascii_0}, {data_ascii_M}
};
0