メインとgpsの合体版。試験運用。

Dependencies:   HMC5883L SDFileSystem TextOLED mbed

Fork of 2bk0123_GPS_Test05 by Atsumi Toda

Committer:
takeuchi
Date:
Wed Feb 02 06:03:53 2011 +0000
Revision:
0:f3ff53b5b707
Child:
1:04787f83fac1

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:f3ff53b5b707 1 //GPS GT-720F Test05
takeuchi 0:f3ff53b5b707 2 #include "mbed.h"
takeuchi 0:f3ff53b5b707 3 #include "TextLCD0420.h"
takeuchi 0:f3ff53b5b707 4
takeuchi 0:f3ff53b5b707 5 #define ON 1
takeuchi 0:f3ff53b5b707 6 #define OFF 0
takeuchi 0:f3ff53b5b707 7
takeuchi 0:f3ff53b5b707 8 DigitalOut mled0(LED1);
takeuchi 0:f3ff53b5b707 9 DigitalOut mled1(LED2);
takeuchi 0:f3ff53b5b707 10
takeuchi 0:f3ff53b5b707 11 TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3
takeuchi 0:f3ff53b5b707 12 Serial gps(p9,p10);
takeuchi 0:f3ff53b5b707 13
takeuchi 0:f3ff53b5b707 14 int main() {
takeuchi 0:f3ff53b5b707 15
takeuchi 0:f3ff53b5b707 16 char c;
takeuchi 0:f3ff53b5b707 17 int i,rlock,stn;
takeuchi 0:f3ff53b5b707 18 char gps_data[256];
takeuchi 0:f3ff53b5b707 19 char ns,ew;
takeuchi 0:f3ff53b5b707 20 float time,hokui,tokei;
takeuchi 0:f3ff53b5b707 21 float g_hokui,g_tokei;
takeuchi 0:f3ff53b5b707 22 float d_hokui,m_hokui,d_tokei,m_tokei;
takeuchi 0:f3ff53b5b707 23
takeuchi 0:f3ff53b5b707 24 gps.baud(9600);
takeuchi 0:f3ff53b5b707 25 lcd.cls();
takeuchi 0:f3ff53b5b707 26 lcd.locate(0,0);
takeuchi 0:f3ff53b5b707 27 lcd.printf("*** GPS GT-720F ***");
takeuchi 0:f3ff53b5b707 28
takeuchi 0:f3ff53b5b707 29 while (1) {
takeuchi 0:f3ff53b5b707 30 i=0;
takeuchi 0:f3ff53b5b707 31 while(gps.getc()!='$'){
takeuchi 0:f3ff53b5b707 32 }
takeuchi 0:f3ff53b5b707 33
takeuchi 0:f3ff53b5b707 34 while( (gps_data[i]=gps.getc()) != '\r'){
takeuchi 0:f3ff53b5b707 35 i++;
takeuchi 0:f3ff53b5b707 36 if(i==256){
takeuchi 0:f3ff53b5b707 37 lcd.printf("*** Data read Error! ***\n");
takeuchi 0:f3ff53b5b707 38 i=255;
takeuchi 0:f3ff53b5b707 39 break;
takeuchi 0:f3ff53b5b707 40 }
takeuchi 0:f3ff53b5b707 41 }
takeuchi 0:f3ff53b5b707 42 gps_data[i]='\0';
takeuchi 0:f3ff53b5b707 43
takeuchi 0:f3ff53b5b707 44 //test
takeuchi 0:f3ff53b5b707 45 /* Test data
takeuchi 0:f3ff53b5b707 46 rlock=1;
takeuchi 0:f3ff53b5b707 47 hokui=3532.25024; //=>35.537502
takeuchi 0:f3ff53b5b707 48 tokei=13751.86820;//=>137.864471
takeuchi 0:f3ff53b5b707 49 */
takeuchi 0:f3ff53b5b707 50 if( sscanf(gps_data, "GPGGA,%f,%f,%c,%f,%c,%d,%d",&time,&hokui,&ns,&tokei,&ew,&rlock,&stn) >= 1){
takeuchi 0:f3ff53b5b707 51 if(rlock >= 1){
takeuchi 0:f3ff53b5b707 52 //hokui
takeuchi 0:f3ff53b5b707 53 d_hokui=int(hokui/100);
takeuchi 0:f3ff53b5b707 54 m_hokui=(hokui-d_hokui*100)/60;
takeuchi 0:f3ff53b5b707 55 g_hokui=d_hokui+m_hokui;
takeuchi 0:f3ff53b5b707 56 //tokei
takeuchi 0:f3ff53b5b707 57 d_tokei=int(tokei/100);
takeuchi 0:f3ff53b5b707 58 m_tokei=(tokei-d_tokei*100)/60;
takeuchi 0:f3ff53b5b707 59 g_tokei=d_tokei+m_tokei;
takeuchi 0:f3ff53b5b707 60 //g_hokui=int(hokui/100)+(hokui-int(hokui/100))/60;
takeuchi 0:f3ff53b5b707 61 //g_tokei=int(tokei/100)+(tokei-int(tokei/100))/60;
takeuchi 0:f3ff53b5b707 62
takeuchi 0:f3ff53b5b707 63 lcd.cls();
takeuchi 0:f3ff53b5b707 64 lcd.locate(0,0);
takeuchi 0:f3ff53b5b707 65 lcd.printf("*** GPS GT-720F ***");
takeuchi 0:f3ff53b5b707 66 lcd.locate(0,1);
takeuchi 0:f3ff53b5b707 67 lcd.printf("Lock(%d),Stn(%d)",rlock,stn);
takeuchi 0:f3ff53b5b707 68 //Latitude=Hokui
takeuchi 0:f3ff53b5b707 69 lcd.locate(0,2);
takeuchi 0:f3ff53b5b707 70 lcd.printf("Lat/dd:%4.6f",g_hokui);
takeuchi 0:f3ff53b5b707 71 // Logitude=tokei
takeuchi 0:f3ff53b5b707 72 lcd.locate(0,3);
takeuchi 0:f3ff53b5b707 73 lcd.printf("Log/dd:%4.6f",g_tokei);
takeuchi 0:f3ff53b5b707 74 }
takeuchi 0:f3ff53b5b707 75 else{
takeuchi 0:f3ff53b5b707 76 lcd.locate(0,1);
takeuchi 0:f3ff53b5b707 77 lcd.printf("Lock(%d),Stn(%d)",rlock,stn);
takeuchi 0:f3ff53b5b707 78 lcd.locate(0,2);
takeuchi 0:f3ff53b5b707 79 for(i=0;i<40;i++){
takeuchi 0:f3ff53b5b707 80 lcd.printf("%c",gps_data[i]);
takeuchi 0:f3ff53b5b707 81 }
takeuchi 0:f3ff53b5b707 82 }
takeuchi 0:f3ff53b5b707 83 }//if
takeuchi 0:f3ff53b5b707 84 }//while
takeuchi 0:f3ff53b5b707 85 }//main
takeuchi 0:f3ff53b5b707 86
takeuchi 0:f3ff53b5b707 87
takeuchi 0:f3ff53b5b707 88