![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
gps
Dependencies: C12832_lcd FatFileSystemCpp GPS mbed MMA7660 PowerControl PwmIn
Fork of MSCUsbHost by
Revision 6:9303188c8010, committed 2014-05-10
- Comitter:
- AlexF64
- Date:
- Sat May 10 22:35:12 2014 +0000
- Parent:
- 5:ae0a5fcf66a7
- Commit message:
- all working now;
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MMA7660.lib Sat May 10 22:35:12 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/Sissors/code/MMA7660/#a8e20db7901e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PowerControl.lib Sat May 10 22:35:12 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/AlexF64/code/PowerControl/#9e96583f05f8
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PwmIn.lib Sat May 10 22:35:12 2014 +0000 @@ -0,0 +1,1 @@ +http://mbed.org/users/simon/code/PwmIn/#6d68eb9b6bbb
--- a/main.cpp Fri May 09 19:04:15 2014 +0000 +++ b/main.cpp Sat May 10 22:35:12 2014 +0000 @@ -2,24 +2,67 @@ #include "GPS.h" #include "C12832_lcd.h" #include "MSCFileSystem.h" - +#include "PwmIn.h" +#include "MMA7660.h" +#include "EthernetPowerControl.h" #define FSNAME "msc" MSCFileSystem msc(FSNAME); Serial pc(USBTX, USBRX); GPS gps(p9, p10); +PwmIn Bearing(p21); C12832_LCD lcd; +MMA7660 MMA(p28, p27);// local name for the Accelerometer +DigitalOut connectionLed(LED1); // debug LED + float timing; int main() { - + + PHY_PowerDown(); + FILE *fp; fp = fopen( "/" FSNAME "/GPSData.txt", "w"); fprintf(fp,""); fclose(fp); + + FILE *fp2; + fp2 = fopen( "/" FSNAME "/CompassData.txt", "w"); + fprintf(fp2,""); + fclose(fp2); + FILE *fp3; + fp3 = fopen( "/" FSNAME "/AccelerometerData.txt", "w"); + fprintf(fp3,""); + fclose(fp3); + + if ( fp == NULL ) + { + lcd.cls();//clear LCD for next reading round + lcd.locate(3,3); + lcd.printf("File error\n"); + } + + if ( fp2 == NULL ) + { + lcd.cls();//clear LCD for next reading round + lcd.locate(3,3); + lcd.printf("File error\n"); + } + + if ( fp3 == NULL ) + { + lcd.cls();//clear LCD for next reading round + lcd.locate(3,3); + lcd.printf("File error\n"); + } + + if (MMA.testConnection()){ + connectionLed = 1;// LEDs are very useful to demonstrate something is working + } + while(1) { @@ -27,19 +70,52 @@ { fp = fopen( "/" FSNAME "/GPSData.txt", "a"); fprintf(fp, "%.1f ",timing); //time when read - fprintf(fp, "Longitude: %f ", gps.longitude); - fprintf(fp, "Latitude: %f\n", gps.latitude); + fprintf(fp, "%f ", gps.longitude); + fprintf(fp, "%f\n", gps.latitude); pc.printf("%f, %f\r\n",gps.latitude,gps.longitude); - lcd.cls(); + + + fp2 = fopen( "/" FSNAME "/CompassData.txt", "a"); + float angle = Bearing.pulsewidth(); + //pc.printf("\ntimer: %.1f",time); + pc.printf("\nBearing: %.2f \r\n", (angle*10000)-10); + fprintf(fp2, "%.1f ",timing); //time when read + fprintf(fp2, "%.2f\r\n",(angle*10000)-10); //angle + + fp3 = fopen( "/" FSNAME "/AccelerometerData.txt", "a"); + float zaxis = MMA.z(); + float xaxis = MMA.x(); + float yaxis = MMA.y(); + + pc.printf("%.2f ",xaxis); + pc.printf("%.2f ",yaxis); + pc.printf("%.2f \r\n",zaxis); + fprintf(fp3, "%.1f ",timing); + fprintf(fp3, "%.2f ",xaxis); + fprintf(fp3, "%.2f ",yaxis); + fprintf(fp3, "%.2f \n",zaxis); + + lcd.cls();//clear LCD for next reading round lcd.locate(3,3); lcd.printf("%.3f\n",gps.latitude);//print x to LCD at locate position - lcd.locate(28,3);//move LCD location for y component - lcd.printf("%.3f\n",gps.longitude);//print y to LCD to new locate position + lcd.locate(30,3);//move LCD location for y component + lcd.printf("%.3f Lat/Long\n",gps.longitude);//print y to LCD to new locate position + + lcd.locate(3,21); + lcd.printf("%.2f Angle\n",(angle*10000)-10); - - wait(0.5); + lcd.locate(3,12);//initial LCD location for x component of acceleration + lcd.printf("%.2f\n",MMA.x());//print x to LCD at locate position + lcd.locate(28,12);//move LCD location for y component + lcd.printf("%.2f\n",MMA.y());//print y to LCD to new locate position + lcd.locate(53,12);//move LCD location for z component + lcd.printf("%.2f XYZ\n",MMA.z());//print z to LCD + + wait(0.5); fclose(fp); + fclose(fp2); + fclose(fp3); timing = timing + 0.5; }