We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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; }