Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp
- Committer:
- sasakisho
- Date:
- 2020-05-16
- Revision:
- 0:d2b63af6bf3b
File content as of revision 0:d2b63af6bf3b:
/* GMS6-CR6の流すデータからフォーマットGPGGAのみを取得して,PCに出力 */
#include "mbed.h"
#include "math.h"
#define TIME_GAP 6.0
Serial gps (p9, p10); //GPSのピンを設定
Serial pc (USBTX, USBRX);
/* mbedにあるなにかの関数らしい */
Timer timer_open;
Timer timer_log;
Ticker tic_open;
Ticker tic_log;
/* プロタイプ宣言 */
float _DMS2DEG(float raw_data);
int _input(char cha);
/* グローバル変数の設定 */
float Time;
char gps_data[256];
int cnt_gps;
int Cnt_GPS = 0;
int main()
{
while(1)
{
if(gps.readable())
{
gps_data[cnt_gps] = gps.getc();
if(gps_data[cnt_gps] == '$' || cnt_gps == 256)
{
cnt_gps = 0;
memset(gps_data, '\0', 256); //この関数なんや
}
else if(gps_data[cnt_gps] == '\r')
{
float world_time, lon_east, lat_north;
int rlock, sat_num;
char lat, lon;
if(sscanf(gps_data, "GPGGA,%f,%f,%c,%f,%c,%d,%d", &world_time, &lat_north, &lat, &lon_east, &lon, &rlock, &sat_num) >= 1)
{
if (rlock == 1)
{
lat_north = _DMS2DEG(lat_north);
lon_east = _DMS2DEG(lon_east);
printf("%s \r\n", gps_data);
printf("Lat:%f, Lon:%f \r\n time:%f,sat_num:%d\r\n", lat_north, lon_east, sat_num);
}
else
{
printf("%s \r\n", gps_data);
}
}
}
else
{
cnt_gps++;
}
}
if(timer_log.read() >= 30.0*60.0) timer_log.reset();
}
}
float _DMS2DEG(float raw_data)
{
int d = (int)(raw_data/100);
float m = (raw_data - (float)d * 100);
return (float) d + m /60;
}