Salut a tous
j'ai un problème de perte de mémoire sur mon système j'ai réussi a isoler la partie responsable m'ai je n'arrive pas a trouver la raison de cette perte de mémoire.
en gros j’utilise pour visualiser la mémoire utiliser la librairie MemorieFree.h et sur le terminal série je vois qu'a chaque fois que j’exécute mon code de dattalogguing je perd en mémoire RAM 31 octet , du coup au bout de quelque temps l'arduino plante.
je pige pas d'où ça viens!
voici mon code de dattalogging :
void DattaLog(){
char nomfichier [13];
sprintf(nomfichier, "%02i%02i%04i.txt", day, month, year);//affichage heure et date
file = SD.open(nomfichier, FILE_READ);
if (file==false) {
file =SD.open(nomfichier, FILE_WRITE);
if( file==true){
file.print(F("Fichier du : "));
file.print(day);
file.print(F("/"));
file.print(month);
file.print(F("/"));
file.println(year);
file.print(F("heure de lever : "));
file.print(int(Time_ON/3600));
file.print(F("H"));
file.println(int(float (Time_ON)/60-(floor(float(Time_ON)/3600)*60)));
file.print(F("heure de coucher : "));
file.print(int(Time_OFF/3600));
file.print(F("H"));
file.println(int(float (Time_OFF)/60-(floor(float(Time_OFF)/3600)*60)));
file.print(F("Duree d'eclairage : "));
file.print((float(Time_OFF)-float(Time_ON))/3600);
file.println(F("H"));
file.println(F("les donnees sont au format suivant : "));
file.println(F("temps;Temperature piece; Temperature Terra; humidite Piece "));
file.print(temps());
file.print(F(";"));
file.print(temp_sonde[sonde_piece]);
file.print(F(";"));
file.print(temp_sonde[sonde_terra]);
file.print(F(";"));
file.println(HumiditePiece);
};
}
else{
file =SD.open(nomfichier, FILE_WRITE);
if( file==true){
long fin=file.size();
file.seek(fin+1L);
sprintf(Buff_afichage, "%02i:%02i:%02i", hour, min, sec);//impresion heure
file.print(Buff_afichage);
file.print(F(";"));
file.print(temp_sonde[sonde_piece]);
file.print(F(";"));
file.print(temp_sonde[sonde_terra]);
file.print(F(";"));
file.println(HumiditePiece);
};
};
file.close();
return;
}
merci
