| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | /* * Calculate the sum and average of a list of floating point numbers */#include <SPI.h>#include "SdFat.h"#include "sdios.h"// SD chip select pinconst uint8_t chipSelect = SS;// object for the SD file systemSdFat sd;// define a serial output streamArduinoOutStream cout(Serial);//------------------------------------------------------------------------------void writeTestFile() {  // open the output file  ofstream sdout("AvgTest.txt");  // write a series of float numbers  for (int16_t i = -1001; i < 2000; i += 13) {    sdout << 0.1 * i << endl;  }  if (!sdout) {    sd.errorHalt("sdout failed");  }  sdout.close();}//------------------------------------------------------------------------------void calcAverage() {  uint16_t n = 0;  // count of input numbers  double num;      // current input number  double sum = 0;  // sum of input numbers  // open the input file  ifstream sdin("AvgTest.txt");  // check for an open failure  if (!sdin) {    sd.errorHalt("sdin failed");  }  // read and sum the numbers  while (sdin >> num) {    n++;    sum += num;  }  // print the results  cout << "sum of " << n << " numbers = " << sum << endl;  cout << "average = " << sum/n << endl;}//------------------------------------------------------------------------------void setup() {  Serial.begin(9600);  // Wait for USB Serial  while (!Serial) {    yield();  }  // F() stores strings in flash to save RAM  cout << F("Type any character to start\n");  while (!Serial.available()) {    yield();  }  // Initialize at the highest speed supported by the board that is  // not over 50 MHz. Try a lower speed if SPI errors occur.  if (!sd.begin(chipSelect, SD_SCK_MHZ(50))) {    sd.initErrorHalt();  }  // write the test file  writeTestFile();  // read the test file and calculate the average  calcAverage();}//------------------------------------------------------------------------------void loop() {}
 |