Make sure the speed of writing to microSD.
Dependencies: SDFileSystem mbed
main.cpp@0:b179d330bb2e, 2017-05-30 (annotated)
- 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?
User | Revision | Line number | New 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 | } |