Bonjour à tous,
je mexcuse pour cette question si bête, mais ca me plane dans un doute.
Sachant que
unsigned int index_EPROM = 0;
const unsigned int eprom_size = 256000; // Micro proc : 24LC256
const unsigned int eprom_inc = 84;
// Si index2_EPROM est plus grand que 0, alors loop toute l'eeprom. index2_EPROM est > 0, car l'eeprom a été remplie et est donc pleine.
// (les enregistrement suivants, aurons repris à 0x0000).
if(index2_EPROM>0){
// Si oui index_EPROM prend la valeur maximal que peut avoir index_eprom, sachant que l'eprom 24LC256 à 250k
index_EPROM += ((eprom_size/eprom_inc)-1);
index2_EPROM = 0;
}
// Loop the eeprom
for(int c=0; c <= index_EPROM; c++){
readEEPROM(rom,(eprom_inc*c)+eprom_cou, course_id);
readEEPROM(rom,(eprom_inc*c)+eprom_lon, lon);
readEEPROM(rom,(eprom_inc*c)+eprom_lat, lat);
readEEPROM(rom,(eprom_inc*c)+eprom_alt, alt);
readEEPROM(rom,(eprom_inc*c)+eprom_tim, time);
readEEPROM(rom,(eprom_inc*c)+eprom_vel, vel);
readEEPROM(rom,(eprom_inc*c)+eprom_sta, _stat);
// Convert into XML format (has to be done very soon)
// Merge in coords
sprintf(coords, "g=%s,%s,%s,%s,%s,%s,%s,%s",course_id,lon,lat,alt,time,vel,_stat,c);
#ifdef DEBUG
// Display the red values, but will be soon built in XML format
Serial.println(coords);
#endif
}
index_EPROM = 0;
Dans un préceédent post, on m'avait expliquer que
index_EPROM += ((eprom_size/eprom_inc)-1);
était la meme chose que
index_EPROM = index_EPROM + ((eprom_size/eprom_inc)-1);
Donc le premier est plus simple en écriture
Dans ce cas on parle "d'incrémentation" ou d'addition.
Donc dans mon code, si-dessus, ceci est faux
index_EPROM += ((eprom_size/eprom_inc)-1);
Car il incrémente alors que je veux remplacer, et devrait être
index_EPROM = ((eprom_size/eprom_inc)-1);
pour prendre sa valeur.
Donc on est bien d'accord ensemble?
J'ai un peu honte de poser cette question, car je donne probablement la réponse et peut etre que je suis encore confu avec les chars.
Vlaaaa, au pire des cas j'ai un blâme =(