Takeuchi Kouichi
/
2bk0123_GPS_Test04
エレキジャックweb mbed入門用です。課題4 GPS Gt-720Fのデータを受信し、受信衛星の数を表示できる部分を追加するプログラムです。
main.cpp@0:000fabec47ad, 2011-01-30 (annotated)
- Committer:
- takeuchi
- Date:
- Sun Jan 30 08:21:56 2011 +0000
- Revision:
- 0:000fabec47ad
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
takeuchi | 0:000fabec47ad | 1 | //GPS GT-720F Test04 |
takeuchi | 0:000fabec47ad | 2 | #include "mbed.h" |
takeuchi | 0:000fabec47ad | 3 | #include "TextLCD0420.h" |
takeuchi | 0:000fabec47ad | 4 | |
takeuchi | 0:000fabec47ad | 5 | #define ON 1 |
takeuchi | 0:000fabec47ad | 6 | #define OFF 0 |
takeuchi | 0:000fabec47ad | 7 | |
takeuchi | 0:000fabec47ad | 8 | DigitalOut mled0(LED1); |
takeuchi | 0:000fabec47ad | 9 | DigitalOut mled1(LED2); |
takeuchi | 0:000fabec47ad | 10 | |
takeuchi | 0:000fabec47ad | 11 | TextLCD lcd(p24, p25, p26, p27, p28, p29, p30,20,4); // rs, rw, e, d0, d1, d2, d3 |
takeuchi | 0:000fabec47ad | 12 | Serial pc(USBTX, USBRX); // tx, rx |
takeuchi | 0:000fabec47ad | 13 | Serial gps(p9,p10); |
takeuchi | 0:000fabec47ad | 14 | |
takeuchi | 0:000fabec47ad | 15 | int main() { |
takeuchi | 0:000fabec47ad | 16 | |
takeuchi | 0:000fabec47ad | 17 | unsigned char c; |
takeuchi | 0:000fabec47ad | 18 | int i,rlock,stn; |
takeuchi | 0:000fabec47ad | 19 | char gps_data[256]; |
takeuchi | 0:000fabec47ad | 20 | char ns,ew; |
takeuchi | 0:000fabec47ad | 21 | float time,hokui,tokei; |
takeuchi | 0:000fabec47ad | 22 | |
takeuchi | 0:000fabec47ad | 23 | gps.baud(9600); |
takeuchi | 0:000fabec47ad | 24 | lcd.cls(); |
takeuchi | 0:000fabec47ad | 25 | lcd.locate(0,0); |
takeuchi | 0:000fabec47ad | 26 | lcd.printf("*** GPS GT-720F ***"); |
takeuchi | 0:000fabec47ad | 27 | |
takeuchi | 0:000fabec47ad | 28 | while (1) { |
takeuchi | 0:000fabec47ad | 29 | i=0; |
takeuchi | 0:000fabec47ad | 30 | while(gps.getc()!='$'){ |
takeuchi | 0:000fabec47ad | 31 | } |
takeuchi | 0:000fabec47ad | 32 | |
takeuchi | 0:000fabec47ad | 33 | while( (gps_data[i]=gps.getc()) != '\r'){ |
takeuchi | 0:000fabec47ad | 34 | i++; |
takeuchi | 0:000fabec47ad | 35 | if(i==256){ |
takeuchi | 0:000fabec47ad | 36 | lcd.printf("*** Data read Error! ***\n"); |
takeuchi | 0:000fabec47ad | 37 | i=255; |
takeuchi | 0:000fabec47ad | 38 | break; |
takeuchi | 0:000fabec47ad | 39 | } |
takeuchi | 0:000fabec47ad | 40 | } |
takeuchi | 0:000fabec47ad | 41 | gps_data[i]='\0'; |
takeuchi | 0:000fabec47ad | 42 | |
takeuchi | 0:000fabec47ad | 43 | if( sscanf(gps_data, "GPGGA,%f,%f,%c,%f,%c,%d,%d",&time,&hokui,&ns,&tokei,&ew,&rlock,&stn) >= 1){ |
takeuchi | 0:000fabec47ad | 44 | if(rlock==1){ |
takeuchi | 0:000fabec47ad | 45 | lcd.cls(); |
takeuchi | 0:000fabec47ad | 46 | lcd.locate(0,0); |
takeuchi | 0:000fabec47ad | 47 | lcd.printf("*** GPS GT-720F ***"); |
takeuchi | 0:000fabec47ad | 48 | lcd.locate(0,1); |
takeuchi | 0:000fabec47ad | 49 | lcd.printf("Lock(%d),Stn(%d)",rlock,stn); |
takeuchi | 0:000fabec47ad | 50 | // logitude |
takeuchi | 0:000fabec47ad | 51 | lcd.locate(0,2); |
takeuchi | 0:000fabec47ad | 52 | lcd.printf("Log:%4.5f",tokei); |
takeuchi | 0:000fabec47ad | 53 | //lcd.printf("Tokiei:%4.5f",tokei); |
takeuchi | 0:000fabec47ad | 54 | //Latitude |
takeuchi | 0:000fabec47ad | 55 | lcd.locate(0,3); |
takeuchi | 0:000fabec47ad | 56 | lcd.printf("Lat:%4.5f",hokui); |
takeuchi | 0:000fabec47ad | 57 | //lcd.printf("Hokui:%4.5f",hokui); |
takeuchi | 0:000fabec47ad | 58 | |
takeuchi | 0:000fabec47ad | 59 | } |
takeuchi | 0:000fabec47ad | 60 | else{ |
takeuchi | 0:000fabec47ad | 61 | lcd.locate(0,1); |
takeuchi | 0:000fabec47ad | 62 | lcd.printf("Lock(%d),Stn(%d)",rlock,stn); |
takeuchi | 0:000fabec47ad | 63 | lcd.locate(0,2); |
takeuchi | 0:000fabec47ad | 64 | for(i=0;i<40;i++){ |
takeuchi | 0:000fabec47ad | 65 | lcd.printf("%c",gps_data[i]); |
takeuchi | 0:000fabec47ad | 66 | } |
takeuchi | 0:000fabec47ad | 67 | } |
takeuchi | 0:000fabec47ad | 68 | }//if |
takeuchi | 0:000fabec47ad | 69 | }//while |
takeuchi | 0:000fabec47ad | 70 | }//main |
takeuchi | 0:000fabec47ad | 71 | |
takeuchi | 0:000fabec47ad | 72 | |
takeuchi | 0:000fabec47ad | 73 |