creat files in sd

Dependencies:   SDFileSystem mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "SDFileSystem.h"
00003 #include <string>
00004 #include <vector>
00005 
00006 Serial pc(USBTX, USBRX);
00007 SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs, name
00008 Serial xbee(p13, p14);  // tx, rx
00009 DigitalOut rst1(p11);
00010 AnalogIn ain(p20);
00011 
00012 DigitalOut myled1(LED1);
00013 DigitalOut myled2(LED2);
00014 DigitalOut myled3(LED3);
00015 
00016 char fname[64];
00017 int i=0;
00018 vector<string> filenames; //filenames are stored in a vector string
00019 int fileNumber;
00020 
00021 
00022 int findNextFile()
00023 {
00024 
00025     FILE *fp;
00026     snprintf(fname,64,"/sd/mydir/myFile%04d.txt",fileNumber); // change to match your file name structure
00027     fp = fopen(fname,"r");
00028     while (fp) {
00029         fclose(fp);
00030         fileNumber++;
00031         fp = fopen(fname,"r");
00032     }
00033 
00034     return fileNumber;
00035 }
00036 
00037 void read_file_names(char *dir)
00038 {
00039     DIR *dp;
00040     struct dirent *dirp;
00041     dp = opendir(dir);
00042     //read all directory and file names in current directory into filename vector
00043     while((dirp = readdir(dp)) != NULL) {
00044         filenames.push_back(string(dirp->d_name));
00045     }
00046     closedir(dp);
00047 }
00048 
00049 int main()
00050 {
00051 
00052     myled1=1;
00053     myled2=1;
00054     wait_ms(20);
00055 
00056 
00057 
00058     printf("if ther a directory of files in /sd/mydir\n");
00059 
00060     DIR *d;
00061     struct dirent *p;
00062     char array[256];
00063     d = opendir("/sd/mydir");
00064 
00065     if (d == NULL) {
00066         //error("Could not open  directory!");
00067         mkdir("/sd/mydir", 0777);
00068         printf(" create directory /sd/mydir");
00069     } else {
00070         while ((p = readdir(d)) != NULL) {
00071             if ((strstr(p->d_name,".txt"))||(strstr(p->d_name,".txt"))) {
00072                 printf(" - %s\n\r", p->d_name);
00073                 printf("%s\n\r",array);
00074             }
00075 
00076         }
00077     }
00078 
00079     
00080 
00081 
00082 
00083     // read file names into vector of strings
00084     //read_file_names("/sd/mydir");
00085     // pc.printf(" read_file_names \n\r");
00086     //sprintf(filename, "/local/analog_%d.txt", x);
00087     //i = findNextFile();
00088     //FILE *fp = fopen(filename, "w");
00089     //snprintf(fname, sizeof(fname), "/sd/mydir/sdtest%04d.txt", i);
00090 
00091 
00092 
00093     FILE *fp = fopen("/sd/mydir/fname", "w");
00094     if(fp == NULL) {
00095         error("Could not open file for write\r\n");
00096     }
00097     pc.printf("File successfully opned and redy to use!\r\n");
00098 
00099 
00100 
00101     myled1=0;
00102     myled3=1;
00103 
00104     for (int j=0; j<1000; j++) {
00105         fprintf(fp, " Analog in = %d \n",ain.read_u16());
00106         wait_ms(20);
00107         myled2=0;
00108     }
00109 
00110     fclose(fp);
00111     pc.printf(" close file\n\r");
00112 
00113     while (1) {
00114         myled2=0;
00115         wait_ms(200);
00116         myled2=1;
00117         wait_ms(200);
00118     }
00119 
00120 
00121 }
00122