simple data logger writing to internal RAM. No existing over-written. search for next file count

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
teekiansek
Date:
Fri Feb 26 18:20:58 2010 +0000
Commit message:

Changed in this revision

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
diff -r 000000000000 -r 8d245bbd9c2b main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Fri Feb 26 18:20:58 2010 +0000
@@ -0,0 +1,160 @@
+#include "mbed.h"
+#include "TextLCD.h"
+
+//#include "MAX6662.h"
+// Create the local filesystem under the name "local"
+
+LocalFileSystem local("local");
+TextLCD lcd(p24, p25, p26, p27, p28, p29, p30); // rs, rw, e, d0, d1, d2, d3
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalIn button(p12);
+
+AnalogIn grx(p16);  // gyroscope x-axis
+AnalogIn gry(p17);  // gyroscope y-axis
+AnalogIn acx(p18);  // accelerometer x-axis
+AnalogIn acy(p19);  // accelerometer y-axis
+AnalogIn acz(p20);  // accelerometer z-axis
+
+
+
+char direct[]= "local";
+char file[20];
+char next_file[20];
+int file_no;
+int count;
+bool not_found;
+bool check;
+
+//*********************************************
+//sub for filename search
+bool exists(char * root, char *filename) {
+
+    DIR *d;
+    struct dirent *p;
+    d = opendir("/local");
+
+    //printf("\nList of files in the directory %s:\n", root);
+    bool found = false;
+    if ( d != NULL ) {
+        while ( !found && (p = readdir(d)) != NULL ) {
+            //printf(" - %s\n", p->d_name);
+            if ( strcmp(p->d_name, filename) == 0 )
+                found = true;
+        }
+    }
+    closedir(d);
+    not_found=!found;
+    return found;
+}
+
+//*********************************************
+
+// this routine could check the last number of file it is
+// last file _no = file_no - 1;
+
+//not_found=false; // intial
+
+
+//*********************************************
+//sub to search for filename
+int search( void ) {
+
+    not_found=false;
+    led1=button;
+    file_no=1;
+    count=0;
+
+    while (not_found==false) {
+        sprintf(file, "TEMP%d.CSV", file_no);
+//        wait(.1);
+        if ( exists(direct, file) ) {
+          
+           // lcd.cls();
+            //lcd.locate(0,0);
+            //lcd.printf("Found %s",file);
+        } else {
+
+            lcd.cls();
+            //lcd.locate(0,0);
+            lcd.printf("Not %s", file);
+        }
+        file_no++;
+       // lcd.locate(0,1);
+        //lcd.printf("%d", file_no-1);
+    }
+    check=1;
+    led2=check;
+    return file_no;
+}
+
+//***************************************************
+
+//**************************************************
+//sub to delay input button
+//avoid bouncing effect
+
+int button_delay(bool b) {
+    bool c = false;
+    if (b==true) {
+        wait(.5);
+        c=true;
+    } else {
+        c=false;
+    }
+    return c;
+}
+
+//*******************************************************
+//main program start here
+
+bool sw;
+int no;
+
+int main() {
+
+    while (1) {
+
+
+        sw=button_delay(button);
+        led1=sw;
+
+        if (sw == false and no == 0) {
+            led3=1;
+            no=search();
+            lcd.locate(0,1);
+            lcd.printf("it is %d", no-1);
+            sprintf(next_file, "/local/temp%d.csv", file_no-1);
+        }
+
+
+        if (sw == true and no != 0) {
+            no=0;
+            led3=0;
+
+            FILE *fp = fopen(next_file, "w");
+            //while (button) {
+            while (button_delay(button)) {
+                led2 = !led2;
+                // time,data<cr>
+                fprintf(fp,"%.2f,%.2f,%.2f,%.2f,%.2f\n",grx.read()*3.3, gry.read()*3.3,acx.read()*3.3,acy.read()*3.3,acz.read()*3.3);
+                //pc.printf("%f,%f,%f\n",acx.read(),acy.read(),acz.read());
+                lcd.locate(0,0);
+                lcd.printf("gx=%.2f,gy=%.2f",grx.read()*3.3, gry.read()*3.3);
+                //lcd.printf("%.2f", f);
+                lcd.locate(0,1);
+                lcd.printf("ax=%.2f,ay=%.2f,az=%.2f",acx.read()*3.3,acy.read()*3.3,acz.read()*3.3);
+                wait (.01);
+            }
+            fclose(fp);
+           // lcd.cls();
+            //lcd.locate(0,0);
+            ///lcd.printf("Press button to start");
+           // wait(.1);
+        }
+    }
+}
+
+
+
diff -r 000000000000 -r 8d245bbd9c2b mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Fri Feb 26 18:20:58 2010 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/49a220cc26e0