S-240の電装班 GPSロガーのTP用のプログラム。機体に搭載する際は、LPC1114FN28に移植することを推奨。

Dependencies:   mbed

Revision:
0:7fe771d8b39a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Sep 03 11:54:59 2017 +0000
@@ -0,0 +1,55 @@
+//LPC1768での作動を確認。
+#include "mbed.h"
+DigitalOut led(LED1);
+LocalFileSystem local("local");
+
+//機体に搭載する際には、LPC1768ではなく、LPC1114を使うと思うので、
+//LocalFileSystem ではなく、sdfilesystemを使うといいかも。
+
+Serial gps(p9,p10);//9,10ピンをGPSの送受信に用いる。
+
+int main(){
+       
+    char rcv[256];
+    int count=0;
+    int log_count=0;
+    FILE*fp;
+    
+    gps.baud(9600); //gpsのボーレート設定
+    
+    
+    while(1){
+    if(gps.readable()){//GPSからの文字を受信したら
+        
+        rcv[count]=gps.getc();
+        
+        if(rcv[count]=='$'){//$という文字を受信したら、
+            rcv[0]='$';
+            count=1;
+        }else{
+            if(rcv[count-1]=='\r'&&rcv[count]=='\n'){
+                rcv[count+1]='\0';
+                
+                if(memcmp(rcv, "$GPRMC",6) == 0) {//$GPRMCという文字を10回取得すると記録する。
+                         
+                         if(log_count >= 10) {
+                          
+                          log_count=0;                 
+                            led=1;                                  
+                            fp=fopen("/local/nmea.log","a");
+                                if(fp != NULL){
+                                fprintf(fp,"%s",rcv);
+                                fclose(fp);                        
+                    }    // if(log_count >= 10) ends
+            }else{
+                led=0;
+                log_count++;
+                }//else ends
+                
+            }
+        count =0;
+       }else{
+        count++;
+        }
+    }
+  }}}