Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed MBed_Adafruit-GPS-Library USBDevice
Revision 2:7166ad3f9a2a, committed 2016-12-22
- Comitter:
- reanimationxp
- Date:
- Thu Dec 22 05:55:53 2016 +0000
- Parent:
- 1:b100ab44119d
- Child:
- 3:e38a115af1dd
- Commit message:
- adding jhey's new new code. again. -reanimationxp
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Dec 22 05:52:09 2016 +0000
+++ b/main.cpp Thu Dec 22 05:55:53 2016 +0000
@@ -1,3 +1,70 @@
+//gps.cpp
+//for use with Adafruit Ultimate GPS
+//Reads in and parses GPS data
+
+#include "mbed.h"
+#include "MBed_Adafruit_GPS.h"
+
+Serial * gps_Serial;
+Serial pc (USBTX, USBRX);
+
+int main() {
+
+ pc.baud(115200); //sets virtual COM serial communication to high rate; this is to allow more time to be spent on GPS retrieval
+
+ gps_Serial = new Serial(PTC17,PTC16); //serial object for use w/ GPS
+ Adafruit_GPS myGPS(gps_Serial); //object of Adafruit's GPS class
+ char c; //when read via Adafruit_GPS::read(), the class returns single character stored here
+ Timer refresh_Timer; //sets up a timer for use in loop; how often do we print GPS info?
+ const int refresh_Time = 2000; //refresh time in ms
+
+ myGPS.begin(9600); //sets baud rate for GPS communication; note this may be changed via Adafruit_GPS::sendCommand(char *)
+ //a list of GPS commands is available at http://www.adafruit.com/datasheets/PMTK_A08.pdf
+
+ myGPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA); //these commands are defined in MBed_Adafruit_GPS.h; a link is provided there for command creation
+ myGPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);
+ myGPS.sendCommand(PGCMD_ANTENNA);
+
+ pc.printf("Connection established at 115200 baud...\n");
+
+ wait(1);
+
+ refresh_Timer.start(); //starts the clock on the timer
+
+ while(true){
+ c = myGPS.read(); //queries the GPS
+
+ if (c) { pc.printf("%c", c); } //this line will echo the GPS data if not paused
+
+ //check if we recieved a new message from GPS, if so, attempt to parse it,
+ if ( myGPS.newNMEAreceived() ) {
+ if ( !myGPS.parse(myGPS.lastNMEA()) ) {
+ continue;
+ }
+ }
+
+ //check if enough time has passed to warrant printing GPS info to screen
+ //note if refresh_Time is too low or pc.baud is too low, GPS data may be lost during printing
+ if (refresh_Timer.read_ms() >= refresh_Time) {
+ refresh_Timer.reset();
+ pc.printf("Time: %d:%d:%d.%u\n", myGPS.hour, myGPS.minute, myGPS.seconds, myGPS.milliseconds);
+ pc.printf("Date: %d/%d/20%d\n", myGPS.day, myGPS.month, myGPS.year);
+ pc.printf("Fix: %d\n", (int) myGPS.fix);
+ pc.printf("Quality: %d\n", (int) myGPS.fixquality);
+ if (myGPS.fix) {
+ pc.printf("Location: %5.2f%c, %5.2f%c\n", myGPS.latitude, myGPS.lat, myGPS.longitude, myGPS.lon);
+ pc.printf("Speed: %5.2f knots\n", myGPS.speed);
+ pc.printf("Angle: %5.2f\n", myGPS.angle);
+ pc.printf("Altitude: %5.2f\n", myGPS.altitude);
+ pc.printf("Satellites: %d\n", myGPS.satellites);
+ }
+ }
+ }
+}
+
+
+/*
+
//gps.cpp
//for use with Adafruit Ultimate GPS
//Reads in and parses GPS data
@@ -61,6 +128,9 @@
}
}
}
+/*
+
+
/*