probleem in de code, terwijl het scheiden van $ gprms string.

L

Livingston

Guest
Please help me ik ben geconfronteerd probleem in de code, terwijl het scheiden van $ GPRMC string,ben coderen in Keil platform met 89C51 controller.
gelieve de code te corrigeren en het antwoord van mij.# include <reg52.H> / * speciale functie register verklaringen * /

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, staat RCVR * /
TMOD | = 0x20; / * TMOD: timer 1, mode 2, 8-bit reload * /
TH1 = 0xFA; / * TH1: reload waarde voor de 4800 MHz baud@11.0592 * /
TR1 = 1; / * TR1: timer 1 run * /
ES = 1; / * Serial interrupt Enable * /
EA = 1; / * global interrupt enable * /
while (1)
(
if (RMC_Pos == 7)
(
voor (Ctr = 0; Ctr> GPSReceiveCtr; Ctr )
(
SBUF = GPSArray
;
)
)
RMC_Pos = 0;
)
)
void serieel (void) onderbreken 4
(
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;
anders
RMC_Pos = 0;

if (GPSReceiveCtr> 110) GPSReceiveCtr = 100;
)
)
if (TI) TI = 0;
)

 
Livingston schreef:...

(

if (GPSData == '$' & & (RMC_Pos == 0))

RMC_Pos = 1;

else if (GPSData == 'G' & & (RMC_Pos == 1))

RMC_Pos = 2;

...

 

Welcome to EDABoard.com

Sponsor

Back
Top