char GPSbuffer[70];
char GPRMC[6]={"$GPRMC"};//Nếu muốn lấy chuỗi data ta GPRMC
char Comma_position[13];
int8 check= 0;
/* Find comma in GPS datas -------------*/
Void FindComma()
{
int8 i, counter= 0;
for(i= 0;i<70; i++)
{
if(GPSbuffer== ',' )
Comma_position[counter++]= i;
}
}
/*Received data from GPS module: ------------*/
#INT_RDA
Void Receive_GPSbuffer()
{
char c;
c= getc();
if(check == 69) return;
GPSbuffer[check++]= getc();
if(check<7)
{
if((GPSbuffer[check-1]) != (GPRMC[check-1]))
check= 0;
}
}
Void TimeGPS()//Vi dụ mang tính minh họa lấy thời gian từ GPS module.
{
char i;
i= Comma_position[0]; //ngay sau vị trí dấu , đầu tiên là thông tin THOI GIAN
printf("TIME(HHMMSS): %c%c:%c%c:%c%c\r\n",GPSbuffer[i+1],GPSbuffer[i+2],
GPSbuffer[i+3],GPSbuffer[i+4],
GPSbuffer[i+5],GPSbuffer[i+6]);
delay_ms(10);
}
Void LatitudeGPS()
{
char i;
i= Comma_position[2];
...
}
Vode LongitudeGPS()
{
char i;
i= Comma_position[4];
...
}
Void GetData()
{
FindComma();
TimeGPS();
LatitudeGPS();//*Sau dấu "," thứ 2: thông tin Latitude
LongitudeGPS();//*Sau dấu "," thứ 4: thông tin Longitude
//...
check= 0;//The next get GPS datas.
}
void main()
{
if(check == 69) GetData();
}