S-240の電装班 GPSロガーのTP用のプログラム。機体に搭載する際は、LPC1114FN28に移植することを推奨。
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 //LPC1768での作動を確認。 00002 #include "mbed.h" 00003 DigitalOut led(LED1); 00004 LocalFileSystem local("local"); 00005 00006 //機体に搭載する際には、LPC1768ではなく、LPC1114を使うと思うので、 00007 //LocalFileSystem ではなく、sdfilesystemを使うといいかも。 00008 00009 Serial gps(p9,p10);//9,10ピンをGPSの送受信に用いる。 00010 00011 int main(){ 00012 00013 char rcv[256]; 00014 int count=0; 00015 int log_count=0; 00016 FILE*fp; 00017 00018 gps.baud(9600); //gpsのボーレート設定 00019 00020 00021 while(1){ 00022 if(gps.readable()){//GPSからの文字を受信したら 00023 00024 rcv[count]=gps.getc(); 00025 00026 if(rcv[count]=='$'){//$という文字を受信したら、 00027 rcv[0]='$'; 00028 count=1; 00029 }else{ 00030 if(rcv[count-1]=='\r'&&rcv[count]=='\n'){ 00031 rcv[count+1]='\0'; 00032 00033 if(memcmp(rcv, "$GPRMC",6) == 0) {//$GPRMCという文字を10回取得すると記録する。 00034 00035 if(log_count >= 10) { 00036 00037 log_count=0; 00038 led=1; 00039 fp=fopen("/local/nmea.log","a"); 00040 if(fp != NULL){ 00041 fprintf(fp,"%s",rcv); 00042 fclose(fp); 00043 } // if(log_count >= 10) ends 00044 }else{ 00045 led=0; 00046 log_count++; 00047 }//else ends 00048 00049 } 00050 count =0; 00051 }else{ 00052 count++; 00053 } 00054 } 00055 }}}
Generated on Fri Jul 22 2022 20:17:55 by
1.7.2