Simple USBHost GPS Dongle Receiver for FRDM-KL46Z test program
Dependencies: KL46Z-USBHost mbed SLCD
FRDM-KL46ZをUSBホストにしてUSBタイプのGPSレシーバを読み取るテストプログラムです。
main.cpp@1:2d8275968aaf, 2014-02-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |