//SD_Essais_de_timing 290919 //une ligne ecrite= 6 valeurs //Format csv immediatement reconnu par Excel //En fait de "coma, virgule" c'est le point virgule (semi-colon) qui est le delimiteur! //Connections: CS sur D4 le reste en SPI, +5V et masse //SPI Mosi = D11, Miso =D12, Clk (ou Slk) = D13 #include #include String cefic = "ex6.csv"; // A modifier ex6,ex7 etc int NK = 1000;//Nb d'ecritures de ligne avant fermeture du fichier //NK = 30 000 (soit plus de 200 000 valeurs) prend 45s,1.5ms par ligne File myFile; //Un objet myFile de type File est créé float D720 = 0; // Valeurs ecrites float D180 = 0; // int tac=0;//Cumule le temps void setup() { Serial.begin(9600); //Pour moniteur PC Serial.print("Initializing SD card..."); if (!SD.begin(4)) { Serial.println("initialization failed!"); while (1); } Serial.println("initialization done."); Serial.println("Creating xx.csv..."); myFile = SD.open(cefic, FILE_WRITE);//On ouvre xx.csv myFile.println("; ; ; ; ;");//Leading blank line String header = "NK;D180;D720;NK;D180;D720";// les entêtes de colonnes myFile.println(header); myFile.close(); //On ferme myFile = SD.open(cefic, FILE_WRITE);//On re-ouvre tac = millis(); //Demarre le chrono } void loop() { NK--;// NK écritures if (NK == 0) { myFile.close();// On ne ferme qu'après NK ecritures Serial.println(millis() - tac);//Temps total Serial.println("Fini"); while (1); } D720 = 120000000 / NK; //un peu de calcul D180 = D720 / 4; //On compose la ligne, tout en String String dataString = String(NK) + ";" + String(D180) + ";" + String(D720) + ";" + String(NK) + ";" + String(D180) + ";" + String(D720); myFile.println(dataString);//Ecrite }