Make sure the speed of writing to microSD.

Dependencies:   SDFileSystem mbed

Committer:
aaaaaYukiaaaaa
Date:
Tue May 30 04:56:42 2017 +0000
Revision:
0:b179d330bb2e
This program is making sure the speed of writing to microSD.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
aaaaaYukiaaaaa 0:b179d330bb2e 1 #include "mbed.h"
aaaaaYukiaaaaa 0:b179d330bb2e 2 #include "SDFileSystem.h"
aaaaaYukiaaaaa 0:b179d330bb2e 3
aaaaaYukiaaaaa 0:b179d330bb2e 4 SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board
aaaaaYukiaaaaa 0:b179d330bb2e 5 DigitalIn enable(p30);
aaaaaYukiaaaaa 0:b179d330bb2e 6 AnalogIn inpt(p20);
aaaaaYukiaaaaa 0:b179d330bb2e 7 DigitalOut myled(LED1);
aaaaaYukiaaaaa 0:b179d330bb2e 8
aaaaaYukiaaaaa 0:b179d330bb2e 9 //float Log[16]={};
aaaaaYukiaaaaa 0:b179d330bb2e 10
aaaaaYukiaaaaa 0:b179d330bb2e 11 Timer SDspeed;
aaaaaYukiaaaaa 0:b179d330bb2e 12
aaaaaYukiaaaaa 0:b179d330bb2e 13 void SD(int num, float btry, float time, float stack_time){
aaaaaYukiaaaaa 0:b179d330bb2e 14 myled = 1;
aaaaaYukiaaaaa 0:b179d330bb2e 15
aaaaaYukiaaaaa 0:b179d330bb2e 16 // printf("Hello World!\n");
aaaaaYukiaaaaa 0:b179d330bb2e 17
aaaaaYukiaaaaa 0:b179d330bb2e 18 mkdir("/sd/mydir", 0777);
aaaaaYukiaaaaa 0:b179d330bb2e 19
aaaaaYukiaaaaa 0:b179d330bb2e 20
aaaaaYukiaaaaa 0:b179d330bb2e 21 SDspeed.start();
aaaaaYukiaaaaa 0:b179d330bb2e 22
aaaaaYukiaaaaa 0:b179d330bb2e 23 FILE *fp_csv = fopen("/sd/mydir/SDtestSpeed.csv", "a");
aaaaaYukiaaaaa 0:b179d330bb2e 24 if(fp_csv == NULL) {
aaaaaYukiaaaaa 0:b179d330bb2e 25 error("Could not open file for write\n");
aaaaaYukiaaaaa 0:b179d330bb2e 26 }
aaaaaYukiaaaaa 0:b179d330bb2e 27
aaaaaYukiaaaaa 0:b179d330bb2e 28 fprintf(fp_csv, "%d,%f,%.5f, %.5f\n", num, btry, time, stack_time);
aaaaaYukiaaaaa 0:b179d330bb2e 29
aaaaaYukiaaaaa 0:b179d330bb2e 30 fclose(fp_csv);
aaaaaYukiaaaaa 0:b179d330bb2e 31
aaaaaYukiaaaaa 0:b179d330bb2e 32 SDspeed.stop();
aaaaaYukiaaaaa 0:b179d330bb2e 33
aaaaaYukiaaaaa 0:b179d330bb2e 34
aaaaaYukiaaaaa 0:b179d330bb2e 35 /////////////////
aaaaaYukiaaaaa 0:b179d330bb2e 36
aaaaaYukiaaaaa 0:b179d330bb2e 37 // FILE *fp_txt = fopen("/sd/mydir/sdtest.txt", "a");
aaaaaYukiaaaaa 0:b179d330bb2e 38 // if(fp_txt == NULL) {
aaaaaYukiaaaaa 0:b179d330bb2e 39 // error("Could not open file for write\n");
aaaaaYukiaaaaa 0:b179d330bb2e 40 // }
aaaaaYukiaaaaa 0:b179d330bb2e 41 // fprintf(fp_txt, "Hello fun SD Card World!\n");
aaaaaYukiaaaaa 0:b179d330bb2e 42 // fprintf(fp_txt, "Hello fun SD Card World!\n");
aaaaaYukiaaaaa 0:b179d330bb2e 43 // fprintf(fp_txt, "%f,%f\n", btry, (float)num);
aaaaaYukiaaaaa 0:b179d330bb2e 44 //
aaaaaYukiaaaaa 0:b179d330bb2e 45 // fclose(fp_txt);
aaaaaYukiaaaaa 0:b179d330bb2e 46
aaaaaYukiaaaaa 0:b179d330bb2e 47
aaaaaYukiaaaaa 0:b179d330bb2e 48 printf("Goodbye World!\n");
aaaaaYukiaaaaa 0:b179d330bb2e 49 myled = 0;
aaaaaYukiaaaaa 0:b179d330bb2e 50 }
aaaaaYukiaaaaa 0:b179d330bb2e 51
aaaaaYukiaaaaa 0:b179d330bb2e 52 int main() {
aaaaaYukiaaaaa 0:b179d330bb2e 53 float btry_lg = 0;
aaaaaYukiaaaaa 0:b179d330bb2e 54 int nmbr_lg = 0;
aaaaaYukiaaaaa 0:b179d330bb2e 55 float wrt_SD_time = 0;
aaaaaYukiaaaaa 0:b179d330bb2e 56 float sec = 0;
aaaaaYukiaaaaa 0:b179d330bb2e 57
aaaaaYukiaaaaa 0:b179d330bb2e 58 FILE *fp_csv = fopen("/sd/mydir/SDtestSpeed.csv", "w");
aaaaaYukiaaaaa 0:b179d330bb2e 59 if(fp_csv == NULL) {
aaaaaYukiaaaaa 0:b179d330bb2e 60 error("Could not open file for write\n");
aaaaaYukiaaaaa 0:b179d330bb2e 61 }
aaaaaYukiaaaaa 0:b179d330bb2e 62 fprintf(fp_csv, "number, battery, time\n");
aaaaaYukiaaaaa 0:b179d330bb2e 63 fclose(fp_csv);
aaaaaYukiaaaaa 0:b179d330bb2e 64
aaaaaYukiaaaaa 0:b179d330bb2e 65 while(1){
aaaaaYukiaaaaa 0:b179d330bb2e 66 // test the voltage on the initialized analog pin
aaaaaYukiaaaaa 0:b179d330bb2e 67 // and if greater than 0.3 * VCC set the digital pin
aaaaaYukiaaaaa 0:b179d330bb2e 68 // to a logic 1 otherwise a logic 0
aaaaaYukiaaaaa 0:b179d330bb2e 69 btry_lg = inpt.read()*3.3;
aaaaaYukiaaaaa 0:b179d330bb2e 70
aaaaaYukiaaaaa 0:b179d330bb2e 71 //if(ain > 0.3f) {
aaaaaYukiaaaaa 0:b179d330bb2e 72 //} else {
aaaaaYukiaaaaa 0:b179d330bb2e 73 //}
aaaaaYukiaaaaa 0:b179d330bb2e 74
aaaaaYukiaaaaa 0:b179d330bb2e 75 // print the percentage and 16 bit normalized values
aaaaaYukiaaaaa 0:b179d330bb2e 76 //printf("percentage: %3.3f%%\n", ain.read()*100.0f);
aaaaaYukiaaaaa 0:b179d330bb2e 77 //printf("normalized: 0x%04X \n", ain.read_u16());
aaaaaYukiaaaaa 0:b179d330bb2e 78 //wait(0.2f);
aaaaaYukiaaaaa 0:b179d330bb2e 79
aaaaaYukiaaaaa 0:b179d330bb2e 80 nmbr_lg++;
aaaaaYukiaaaaa 0:b179d330bb2e 81
aaaaaYukiaaaaa 0:b179d330bb2e 82 SD(nmbr_lg, btry_lg, wrt_SD_time, sec);
aaaaaYukiaaaaa 0:b179d330bb2e 83 wrt_SD_time = SDspeed.read();
aaaaaYukiaaaaa 0:b179d330bb2e 84 sec += wrt_SD_time;
aaaaaYukiaaaaa 0:b179d330bb2e 85
aaaaaYukiaaaaa 0:b179d330bb2e 86 wait_us(10);
aaaaaYukiaaaaa 0:b179d330bb2e 87 }
aaaaaYukiaaaaa 0:b179d330bb2e 88 }