GPS System NEO-6M-0-001

void gps_system(void)
{
value=usart_getc();
if(value=='$')
	{
	value=usart_getc();
	 if(value=='G')
		{
		value=usart_getc();
		 if(value=='P')
			{
			value=usart_getc();
			 if(value=='G')
			 	{
				 value=usart_getc();
				  if(value=='G')
					{
					 value=usart_getc();
					 if(value=='A')
					  {
					  value=usart_getc();
					   if(value==',')
						{
							lat_long(); //filter setion
						}
						}
					}
				}
			}
		}
	}
}
void lat_long(void)
{
 filter=usart_getc();
 GMT[0]=filter;
 for(str_count=1;filter!=',';str_count++)
	{
	GMT[str_count]=usart_getc();
	filter=GMT[str_count];
	}
 filter=usart_getc();
 latitude[0]=filter;
 for(str_count=1;filter!=',';str_count++)
	{
	latitude[str_count]=usart_getc();
	filter=latitude[str_count];
	}
 filter=usart_getc();
 latitude[str_count]=filter;
 filter=usart_getc(); //nul char to remove char ,(0x2e)
 filter=usart_getc(); //nul char to remove char ,(0x2e)
 for(str_count=0;filter!=',';str_count++)
	{
	longitude[str_count]=usart_getc();
	filter=longitude[str_count];
	}
 filter=usart_getc();
 longitude[str_count]=filter;
 LCD_write_string(1,1,latitude);
 LCD_write_string(1,2,longitude);
}
  /***********************************************************
  ************************************************************
  ** GPS System :$GPGGA-Global Positioning System Fixed data *
  ** GMT Time: Latitude: Longitude: ---: Altitude            *
  **                                                         *
  ***********************************************************/
  #include<avr/io.h>
  #include<util/delay.h>
  #include<stdio.h>
  #include"gsm.h"
  #include"lcd.h"
 int main(void)
  {
    gsm_init(); //USART initilize with timer
    LCD_INIT();
    DDRD|=(1<<4);
    LCD_write_string(1,1,"Welcome");
    _delay_ms(5000);
    while(1)
      {
	     if(min)
	     gps_system(); //data update every 5s
	     min?(PORTD|=(1<<4)):(PORTD&=~(1<<4));
       }
    return 0;
}