CODE
Dependencies: C12832_lcd CMPS03 FatFileSystemCpp GPS MMA7660 mbed
Fork of CompleteMbed by
Diff: main.cpp
- Revision:
- 0:2557081b4322
- Child:
- 1:cdfeb3e3d25d
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed May 07 09:49:54 2014 +0000 @@ -0,0 +1,123 @@ +#include "mbed.h" +#include "GPS.h" +#include "MMA7660.h" +#include "CMPS03.h" +#include "MSCFileSystem.h" + +#define FSNAME "USB" + +// Initialisation +Serial pc(USBTX, USBRX); +GPS gps(p9, p10); // GPS connections +MMA7660 MMA(p28, p27); // Accelerometer connections +CMPS03 compass(p28, p27, CMPS03_DEFAULT_I2C_ADDRESS); // Compass connections + +// Declarations +float ax, ay, az; // acceleration values +DigitalOut connectionLed(LED1); +MSCFileSystem msc(FSNAME); + + +int main() +{ + DIR *d; + struct dirent *p; + + d = opendir("/" FSNAME); + + pc.printf("\nList of files on the flash drive:\n"); + if ( d != NULL ) + { + while ( (p = readdir(d)) != NULL ) + { + pc.printf(" - %s\n", p->d_name); + } + } + else + { + error("Could not open directory!"); + } + //printf("\nTesting file write:\n"); + FILE *CompassFile = fopen( "/" FSNAME "/compass_file.txt", "w"); + if ( CompassFile == NULL ) + { + error("Could not open compass file for write\n"); + } + FILE *GPSFile = fopen("/" FSNAME "/gps_file.txt", "w"); + if ( GPSFile == NULL ) + { + error("Could not open GPS file for write\n"); + } + FILE *AccelFile = fopen("/" FSNAME "/accel_file.txt", "w"); + if ( AccelFile == NULL ) + { + error("Could not open acceleration file for write\n"); + } + if (MMA.testConnection()) + connectionLed = 1; // check that MMA is connected and display on LED1 + + pc.printf("Starting CMPS03 test...\n"); + float refPoint = 1.0; + float bearing; + int i = 1; + + while (1) + { + refPoint = compass.readBearing(); + pc.printf(CompassFile, "The reference bearing: %f\n\n", refPoint/10); + while(i == 1) + { + // GPS code + if(gps.sample()) + { + fprintf(GPSFile, "\n%f %f\n", gps.latitude, gps.longitude); + } + else + { + pc.printf("\nOh Dear! No lock :(\n") && fprintf(GPSFile, "\n0.000 0.000\n"); + } + + // Accelerometer code + + ax=MMA.x(); // read accelerometer values + ay=MMA.y(); + az=MMA.z(); + fprintf(AccelFile, "%f %f %f\n",ax,ay,az); + + // Compass code + bearing = (compass.readBearing()/10 - refPoint/10); + if(bearing < 0.0) + { + bearing = 360 + bearing; + fprintf(CompassFile, "Bearing : %f\n\n", bearing); + } + else + { + pc.printf(CompassFile, "Bearing : %f\n\n", bearing); + } + } + } + fclose(CompassFile); + fclose(AccelFile); + fclose(GPSFile); + + /* fclose(compassFile); + printf("\n - OK\n"); + + printf("\nTesting file read:\n"); + compassFile = fopen( "/" FSNAME "/compassfile.txt", "r"); + if ( compassFile == NULL ) + { + error("Could not open compass file for read\n"); + } + char buf[256]; + if ( NULL == fgets(buf, sizeof(buf), compassFile) ) + { + error("Error reading from file\n"); + } + fclose(compassFile); + printf("\n - OK, read string: '%s'\n\n", buf); + */ + + +} \ No newline at end of file