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

Dependencies:   mbed

main.cpp

Committer:
Joeatsumi
Date:
2017-09-03
Revision:
0:7fe771d8b39a

File content as of revision 0:7fe771d8b39a:

//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++;
        }
    }
  }}}