Dear all I am filtering $GPRMC string but i can't able to get any data in the hyperterminal please suggest me my problem in the code.
/*------------------------------------------------------------------------------ Serial.c ------------------------------------------------------------------------------*/ #include <reg52.H> /* special function register declarations */ #include <stdio.h> /* prototype declarations for I/O functions */ sbit mybit=P1^1 ; unsigned char RMC_Pos,GPSReceiveCtr,GPSData,Ctr; unsigned char GPSArray[110]; void main(void) { RMC_Pos=0; SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */ TMOD |= 0x20; /* TMOD: timer 1, mode 2, 8-bit reload */ TH1 = 0xFA; /* TH1: reload value for 4800 baud @ 11.0592 MHz */ TR1 = 1; /* TR1: timer 1 run */ ES=1; /* Serial interrupt Enable*/ EA=1; /* global interrupt enable*/ while(1) { if(RMC_Pos==7) { for(Ctr=0;Ctr>GPSReceiveCtr;Ctr++) { SBUF=GPSArray[Ctr]; } } RMC_Pos=0; } } void serial (void) interrupt 4 { mybit=1; if(RI) { RI=0; GPSData = SBUF; if(RMC_Pos!=7) { if( GPSData== '$' && (RMC_Pos == 0) ) RMC_Pos=1; else if( GPSData == 'G' && (RMC_Pos == 1) ) RMC_Pos=2; else if( GPSData == 'P' && (RMC_Pos == 2) ) RMC_Pos=3; else if( GPSData == 'R' && (RMC_Pos == 3) ) RMC_Pos=4; else if( GPSData == 'M' && (RMC_Pos == 4) ) RMC_Pos=5; else if( GPSData == 'C' && (RMC_Pos == 5) ) { RMC_Pos=6; GPSReceiveCtr=0; } else if( GPSData != '*' && (RMC_Pos == 6) ) GPSArray[GPSReceiveCtr++]=GPSData; else if( GPSData == '*' && (RMC_Pos == 6) ) RMC_Pos=7; else RMC_Pos=0; if(GPSReceiveCtr > 100) GPSReceiveCtr=100; mybit=0; } } if(TI)TI=0; }