Log data to a micro SD card.

Dependencies:   SDFileSystem mbed

Files at this revision

API Documentation at this revision

Comitter:
onaka
Date:
Wed Apr 22 06:57:07 2015 +0000
Child:
1:c5e56e2580bf
Commit message:
Datalogger

Changed in this revision

SDFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDFileSystem.lib	Wed Apr 22 06:57:07 2015 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/teams/mbed/code/SDFileSystem/#7b35d1709458
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Wed Apr 22 06:57:07 2015 +0000
@@ -0,0 +1,63 @@
+#include "mbed.h"
+#include "SDFileSystem.h"
+
+DigitalIn mybutton(USER_BUTTON);
+Serial pc(SERIAL_TX, SERIAL_RX);
+
+SDFileSystem sd(SPI_MOSI, SPI_MISO, SPI_SCK, SPI_CS, "sd");
+FILE *fp;
+
+Ticker timer;
+static double t;    //時間t
+
+//SDカード内からログ番号の最大値を取得する関数
+int find_last() {
+    int i, n = 0;
+    DIR *dp;
+    struct dirent *dirst;
+    dp = opendir("/sd/");
+    if (!dp){
+        printf("Could not open directry\n");
+        return -1;
+    }
+    while((dirst = readdir(dp)) != NULL) {
+        if(sscanf(dirst->d_name, "log%03d.csv", &i) == 1 && i>n) {
+            n = i;
+        }
+    }
+    closedir(dp);
+    return n;
+}
+
+void Int_Timer() {
+    //ボタンが押されているかどうかをログする
+    fprintf(fp, "%.1f,%d\n", t, (int)mybutton);
+    t += 0.1;
+}
+
+int main() {
+    char filename[15];
+    int n = find_last();
+    if(n < 0) return 0;
+    
+    //ログ番号を+1してファイルを新規作成
+    //ファイル名は"logXXX.csv"
+    sprintf(filename, "/sd/log%03d.csv", n+1);
+    fp = fopen(filename, "w");
+    
+    printf("Start writing!\n");
+    fprintf(fp, "time,x\n");
+    
+    //0.1s間隔のタイマー割り込み
+    timer.attach(&Int_Timer, 0.1);
+    
+    t = 0.0;
+    //10.0sで終了
+    while(t < 10.0){
+    }
+
+    timer.detach();
+    fclose(fp);
+    printf("Finish!\n");
+}
+ 
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Wed Apr 22 06:57:07 2015 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/433970e64889
\ No newline at end of file