210625 GPS and Ltika

Dependencies:   mbed GPS_interrupt

Committer:
imadaemi
Date:
Fri Jun 25 12:22:40 2021 +0000
Revision:
0:23228856ff9f
210625_GPS and Ltika

Who changed what in which revision?

UserRevisionLine numberNew contents of line
imadaemi 0:23228856ff9f 1 #include "mbed.h"
imadaemi 0:23228856ff9f 2 #include "GPS_interrupt.h"
imadaemi 0:23228856ff9f 3
imadaemi 0:23228856ff9f 4 Serial pc(USBTX, USBRX, 115200);
imadaemi 0:23228856ff9f 5 Serial gps_serial(p9, p10, 115200);
imadaemi 0:23228856ff9f 6
imadaemi 0:23228856ff9f 7 GPS_interrupt gps(&gps_serial);
imadaemi 0:23228856ff9f 8 DigitalOut led1(LED1);
imadaemi 0:23228856ff9f 9 DigitalOut led2(LED2);
imadaemi 0:23228856ff9f 10 DigitalOut led3(LED3);
imadaemi 0:23228856ff9f 11 DigitalOut led4(LED4);
imadaemi 0:23228856ff9f 12
imadaemi 0:23228856ff9f 13 bool SetGPS();
imadaemi 0:23228856ff9f 14 void GetGPS();
imadaemi 0:23228856ff9f 15
imadaemi 0:23228856ff9f 16 float lat, lon, height;
imadaemi 0:23228856ff9f 17 int num = 0;
imadaemi 0:23228856ff9f 18
imadaemi 0:23228856ff9f 19 int main() {
imadaemi 0:23228856ff9f 20
imadaemi 0:23228856ff9f 21 pc.printf("Hello GPS!\r\n");
imadaemi 0:23228856ff9f 22
imadaemi 0:23228856ff9f 23 while(1){
imadaemi 0:23228856ff9f 24 if(SetGPS() == 1){
imadaemi 0:23228856ff9f 25 break;
imadaemi 0:23228856ff9f 26 }
imadaemi 0:23228856ff9f 27 }
imadaemi 0:23228856ff9f 28
imadaemi 0:23228856ff9f 29 while(1){
imadaemi 0:23228856ff9f 30 led1 = 0;
imadaemi 0:23228856ff9f 31 led2 = 0;
imadaemi 0:23228856ff9f 32 led3 = 0;
imadaemi 0:23228856ff9f 33 led4 = 0;
imadaemi 0:23228856ff9f 34
imadaemi 0:23228856ff9f 35 GetGPS();
imadaemi 0:23228856ff9f 36
imadaemi 0:23228856ff9f 37 if(lat != 0 && lon != 0){
imadaemi 0:23228856ff9f 38 switch(num%4){
imadaemi 0:23228856ff9f 39 case 1:
imadaemi 0:23228856ff9f 40 led1 = 1;
imadaemi 0:23228856ff9f 41 break;
imadaemi 0:23228856ff9f 42
imadaemi 0:23228856ff9f 43 case 2:
imadaemi 0:23228856ff9f 44 led2 = 1;
imadaemi 0:23228856ff9f 45 break;
imadaemi 0:23228856ff9f 46
imadaemi 0:23228856ff9f 47 case 3:
imadaemi 0:23228856ff9f 48 led3 = 1;
imadaemi 0:23228856ff9f 49 break;
imadaemi 0:23228856ff9f 50
imadaemi 0:23228856ff9f 51 case 0:
imadaemi 0:23228856ff9f 52 led4 = 1;
imadaemi 0:23228856ff9f 53 break;
imadaemi 0:23228856ff9f 54 }
imadaemi 0:23228856ff9f 55 }
imadaemi 0:23228856ff9f 56
imadaemi 0:23228856ff9f 57 num++;
imadaemi 0:23228856ff9f 58 wait(0.1);
imadaemi 0:23228856ff9f 59 }
imadaemi 0:23228856ff9f 60 }
imadaemi 0:23228856ff9f 61
imadaemi 0:23228856ff9f 62 bool SetGPS(){
imadaemi 0:23228856ff9f 63 // gps.changeGPSFreq(10); 入れるとエラーが出る
imadaemi 0:23228856ff9f 64 if(gps.gps_readable == true){
imadaemi 0:23228856ff9f 65 pc.printf("GPS OK!\r\n");
imadaemi 0:23228856ff9f 66 return true;
imadaemi 0:23228856ff9f 67 }else if(gps.gps_readable == false){
imadaemi 0:23228856ff9f 68 pc.printf("GPS NG...\r\n");
imadaemi 0:23228856ff9f 69 return false;
imadaemi 0:23228856ff9f 70 }
imadaemi 0:23228856ff9f 71 // xbee.printf("GPS OK!\r\n");
imadaemi 0:23228856ff9f 72 // openlog.printf("GPS OK!\r\n");
imadaemi 0:23228856ff9f 73 }
imadaemi 0:23228856ff9f 74
imadaemi 0:23228856ff9f 75 void GetGPS(){
imadaemi 0:23228856ff9f 76 lat = gps.Latitude();
imadaemi 0:23228856ff9f 77 lon = gps.Longitude();
imadaemi 0:23228856ff9f 78 height = gps.Height();
imadaemi 0:23228856ff9f 79 pc.printf("%f\t%f\t%f\t\r\n", lat, lon, height);
imadaemi 0:23228856ff9f 80 // xbee.printf("%f\t%f\t%f\t\r\n", lat, lon, height);
imadaemi 0:23228856ff9f 81 // openlog.printf("%f\t%f\t%f\t\r\n", lat, lon, height);
imadaemi 0:23228856ff9f 82 }