Estoy configurando una matriz con datos de una EEPROM. Como puede ver en el código a continuación, hago una instancia de una matriz, hago un ciclo 16 veces y la lleno con datos leídos desde la EEPROM. He probado los datos que se leen de la EEPROM que es correcta, pero si imprimo la matriz después del bucle obtengo 18 caracteres. No puedo averiguar de dónde vienen los datos. ¿Alguna idea?
void send_eeprom_data()
{
char eeprom_data[16];
for(int i = 0; i < 16; i++) {
eeprom_data[i] = read_eeprom(8, i);
}
Serial.print(eeprom_data);
}
/* READ AND TRANSFER FUNCTIONS */
char spi_transfer(volatile char data) {
SPDR = data;
while(!(SPSR & (1 << SPIF)))
{
};
return SPDR;
}
byte read_eeprom(int ss, int address) {
int data;
digitalWrite(ss, LOW);
spi_transfer(READ);
spi_transfer((char)(address));
data = spi_transfer(0xFF);
digitalWrite(ss, HIGH);
return data;
}
actualizar
Cambié el código a lo siguiente:
void send_eeprom_data()
{
char eeprom_data[16];
for(int i = 0; i < 16; i++) {
eeprom_data[i] = 'a';
}
Serial.print(eeprom_data);
}
Salida:
aaaaaaaaaaaaaaaaûz
(16 a)