Buen día a todos, me sucede algo extraño, las variables no almacenan los datos que le especifico, este es el código:
byte Dsp[5];
byte DspAct[5];
void setup() {
DspAct[0]=0;
DspAct[1]=1;
DspAct[2]=0;
DspAct[3]=1;
DspAct[4]=0;
DspAct[5]=1;
Dsp[0]=1;
Dsp[1]=2;
Dsp[2]=3;
Dsp[3]=1;
Dsp[4]=2;
Dsp[5]=3;
Serial.println(DspAct[0]);
Serial.println(DspAct[1]);
Serial.println(DspAct[2]);
Serial.println(DspAct[3]);
Serial.println(DspAct[4]);
Serial.println(DspAct[5]);
Serial.println("////////////////");
Serial.println(Dsp[0]);
Serial.println(Dsp[1]);
Serial.println(Dsp[2]);
Serial.println(Dsp[3]);
Serial.println(Dsp[4]);
Serial.println(Dsp[5]);
}
Y esto es lo que imprime el puerto serial:
0
105
97
98
97
116
////////////////
0
0
0
0
0
0
Si cambios ambas variables a tipo int esto es lo que me imprime:
0
7304289
0
0
0
1
////////////////
1
2
3
1
2
3
No sé qué otra cosa pueda ser. Agradezco cualquier ayuda que me puedan dar.
PD: Me acabo de dar cuenta que esto sucede luego de usar la función strncopy ya que el código completo es este:
DspAct[0]=0;
DspAct[1]=1;
DspAct[2]=0;
DspAct[3]=1;
DspAct[4]=0;
DspAct[5]=1;
Dsp[0]=1;
Dsp[1]=2;
Dsp[2]=3;
Dsp[3]=1;
Dsp[4]=2;
Dsp[5]=3;
Serial.println("ANTES DE STRNCOPY");
Serial.println(DspAct[0]);
Serial.println(DspAct[1]);
Serial.println(DspAct[2]);
Serial.println(DspAct[3]);
Serial.println(DspAct[4]);
Serial.println(DspAct[5]);
Serial.println("////////////////");
Serial.println(Dsp[0]);
Serial.println(Dsp[1]);
Serial.println(Dsp[2]);
Serial.println(Dsp[3]);
Serial.println(Dsp[4]);
Serial.println(Dsp[5]);
strncpy( sDsp[0], "cadena1", sizeof(sDsp[0]) );
strncpy( sDsp[1], "cadena2", sizeof(sDsp[1]) );
strncpy( sDsp[2], "cadena3", sizeof(sDsp[2]) );
strncpy( sDsp[3], "cadena4", sizeof(sDsp[3]) );
strncpy( sDsp[4], "cadena5", sizeof(sDsp[4]) );
strncpy( sDsp[5], "cadena6", sizeof(sDsp[5]) );
Serial.println("DESPUES DE STRNCOPY");
Serial.println(DspAct[0]);
Serial.println(DspAct[1]);
Serial.println(DspAct[2]);
Serial.println(DspAct[3]);
Serial.println(DspAct[4]);
Serial.println(DspAct[5]);
Serial.println("////////////////");
Serial.println(Dsp[0]);
Serial.println(Dsp[1]);
Serial.println(Dsp[2]);
Serial.println(Dsp[3]);
Serial.println(Dsp[4]);
Serial.println(Dsp[5]);
Y esta es la salida del programa:
ANTES DE STRNCOPY
0
1
0
1
0
1
////////////////
1
2
3
1
2
3
DESPUES DE STRNCOPY
1650551123
7304289
0
0
0
1
////////////////
1
2
3
1
2
3