Make sure the speed of writing to microSD.
Dependencies: SDFileSystem mbed
Diff: main.cpp
- Revision:
- 0:b179d330bb2e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue May 30 04:56:42 2017 +0000 @@ -0,0 +1,88 @@ +#include "mbed.h" +#include "SDFileSystem.h" + +SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board +DigitalIn enable(p30); +AnalogIn inpt(p20); +DigitalOut myled(LED1); + +//float Log[16]={}; + + Timer SDspeed; + +void SD(int num, float btry, float time, float stack_time){ + myled = 1; + +// printf("Hello World!\n"); + + mkdir("/sd/mydir", 0777); + + + SDspeed.start(); + + FILE *fp_csv = fopen("/sd/mydir/SDtestSpeed.csv", "a"); + if(fp_csv == NULL) { + error("Could not open file for write\n"); + } + + fprintf(fp_csv, "%d,%f,%.5f, %.5f\n", num, btry, time, stack_time); + + fclose(fp_csv); + + SDspeed.stop(); + + + ///////////////// + +// FILE *fp_txt = fopen("/sd/mydir/sdtest.txt", "a"); +// if(fp_txt == NULL) { +// error("Could not open file for write\n"); +// } +// fprintf(fp_txt, "Hello fun SD Card World!\n"); +// fprintf(fp_txt, "Hello fun SD Card World!\n"); +// fprintf(fp_txt, "%f,%f\n", btry, (float)num); +// +// fclose(fp_txt); + + + printf("Goodbye World!\n"); + myled = 0; +} + +int main() { + float btry_lg = 0; + int nmbr_lg = 0; + float wrt_SD_time = 0; + float sec = 0; + + FILE *fp_csv = fopen("/sd/mydir/SDtestSpeed.csv", "w"); + if(fp_csv == NULL) { + error("Could not open file for write\n"); + } + fprintf(fp_csv, "number, battery, time\n"); + fclose(fp_csv); + + while(1){ + // test the voltage on the initialized analog pin + // and if greater than 0.3 * VCC set the digital pin + // to a logic 1 otherwise a logic 0 + btry_lg = inpt.read()*3.3; + + //if(ain > 0.3f) { + //} else { + //} + + // print the percentage and 16 bit normalized values + //printf("percentage: %3.3f%%\n", ain.read()*100.0f); + //printf("normalized: 0x%04X \n", ain.read_u16()); + //wait(0.2f); + + nmbr_lg++; + + SD(nmbr_lg, btry_lg, wrt_SD_time, sec); + wrt_SD_time = SDspeed.read(); + sec += wrt_SD_time; + + wait_us(10); + } +}