Simple USBHost GPS Dongle Receiver for FRDM-KL46Z test program

Dependencies:   KL46Z-USBHost mbed SLCD

FRDM-KL46ZをUSBホストにしてUSBタイプのGPSレシーバを読み取るテストプログラムです。
/media/uploads/va009039/frdm-kl46z-usbhost-gps.jpg

Committer:
va009039
Date:
Wed Feb 05 13:40:35 2014 +0000
Revision:
1:2d8275968aaf
Parent:
0:4231f156a567
add NMEA decode. update KL46Z-USBHost library.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
va009039 0:4231f156a567 1 #include "USBHostGPS.h"
va009039 1:2d8275968aaf 2 #include "SLCD.h"
va009039 0:4231f156a567 3
va009039 1:2d8275968aaf 4 DigitalOut led1(LED_GREEN);
va009039 1:2d8275968aaf 5 DigitalOut led2(LED_RED);
va009039 0:4231f156a567 6 #define LED_OFF 1
va009039 0:4231f156a567 7 #define LED_ON 0
va009039 0:4231f156a567 8
va009039 1:2d8275968aaf 9 SLCD slcd;
va009039 1:2d8275968aaf 10
va009039 1:2d8275968aaf 11 void callback_gps(char* buf, int size) {
va009039 1:2d8275968aaf 12 for(int i = 0; i < size; i++) {
va009039 1:2d8275968aaf 13 char c = buf[i];
va009039 1:2d8275968aaf 14 printf("%c", c);
va009039 1:2d8275968aaf 15 }
va009039 1:2d8275968aaf 16 led2 = !led2;
va009039 1:2d8275968aaf 17 }
va009039 1:2d8275968aaf 18
va009039 0:4231f156a567 19 int main() {
va009039 0:4231f156a567 20 // GT-730F/L 38400bps
va009039 0:4231f156a567 21 // Gosget SD-200 GPS DONGLE 4800bps
va009039 1:2d8275968aaf 22 USBHostGPS gps(4800);
va009039 1:2d8275968aaf 23 if (!gps.connect()) {
va009039 1:2d8275968aaf 24 error("GPS not found.\n");
va009039 1:2d8275968aaf 25 }
va009039 1:2d8275968aaf 26 gps.attachEventRaw(callback_gps);
va009039 1:2d8275968aaf 27
va009039 1:2d8275968aaf 28 time_t prev = gps.nmea.update_t;
va009039 0:4231f156a567 29 while(1) {
va009039 1:2d8275968aaf 30 USBHost::poll();
va009039 1:2d8275968aaf 31 if (prev != gps.nmea.update_t) {
va009039 1:2d8275968aaf 32 struct tm * timeinfo;
va009039 1:2d8275968aaf 33 timeinfo = localtime(&gps.nmea.update_t);
va009039 1:2d8275968aaf 34 char buf[5];
va009039 1:2d8275968aaf 35 strftime(buf, sizeof(buf), "%M%S", timeinfo);
va009039 1:2d8275968aaf 36 slcd.printf("%.4s", buf);
va009039 1:2d8275968aaf 37 prev = gps.nmea.update_t;
va009039 0:4231f156a567 38 led1 = !led1;
va009039 0:4231f156a567 39 }
va009039 0:4231f156a567 40 }
va009039 0:4231f156a567 41 }