Go Down

Topic: Duda con lectura de datos en Fichero SD (Read 675 times) previous topic - next topic

Gablagar

Buenas a todos,

Tengo un problema con una determinada aplicación que estoy realizando.
Por situar un poco la aplicación, cuando se pulsa un botón conectado a una determinada entrada digital, abro un fichero en la SD y comienzo la adquisición y guardado de datos que provienen de un sensor. La longitud de esta adquisición, depende del ensayo en cuestión.
El problema que encuentro es en la siguiente parte del código, con otra pulsación conectada a otra entrada digital, debo abrir el último fichero guardado y leer los datos adquiridos por el sensor, para realizar un determinado cálculo matemático con ellos. Los datos guardados están en enteros de la siguiente forma:

253;569;521
265;547;245
142;545;365
....

La idea que tengo es abrir el fichero y almacenar la primera columna de datos en un array x, la segunda en un array y y la tercera en un array z de la siguiente forma:
x = [253;265;142;....]; y =[569;547;545;....] y z=[521;245;365;...]

Estoy teniendo problemas con esta operación de almacenar en x, y y z los valores, el código que tengo implementado es el siguiente:
Defino las siguientes variables:
Code: [Select]

int i=0;
int x[]={};
int y[]={};
int z[]={};


Y dentro del loop cuando abro el fichero ....

Code: [Select]

File myFile = SD.open(nomfichero);
      if (myFile) {
        Serial.println(nomfichero);
        while (myFile.available()) {
          //Serial.write(myFile.read());
          int x = myFile.parseInt();
          int y = myFile.parseInt();
          int z = myFile.parseInt();
          x[i] = x;
          y[i] = y;
          z[i] = z;
          i=i+1;
    }// close the file:
          myFile.close();
          }
      } else {
  // if the file didn't open, print an error:
      Serial.println("error opening test.txt");
      }


El problema que tengo es en x, y y z se me escriben los mismos valores esto es :
x[1]=521;y[1]=521;z[1]=521
x[2]=245;y[1]=245;z[1]=245 .....

Puede alguien decirme por que ocurre esto?
Se puede mejorar o robustecer esta parte de código?
Agradecería cualquier ayuda al respecto...
Un saludo.

noter

Supongo que porque cierras el archivo. Entonces, cada vez que vuelves a abrirlo, lees el principio del fichero. Para leer los siguientes registros, debes realizar las lecturas sin cerrar el archivo, o bien calcular un índice que apunte al registro que te interesa leer.

Go Up