- Codice: Seleziona tutto
if (PIR1bits.RC1IF == 1 && i<200) {
LED_GIALLO = LED_GIALLO^1;
buffer[i] = Read1USART();
i++;
}
cosi nel programma principale puoi fare cosi:
- Codice: Seleziona tutto
unsigned char coordinata1[10];
unsigned char coordinata2[10];
i=0; //resetti l'indice
while(i<200); //aspetti mentre ricevi 200bytes
decodeNMEA(buffer,coordinata1,coordinata2);
ed ora ti puoi concentrare sulla funzione "decodeNMEA" per estrapolare le due coordinate che verranno salvate nei due array di char da 10bytes ciascuno:
- Codice: Seleziona tutto
void decodeNMEA(unsigned char* buff, unsigned char* c1, unsigned char * c2){
const unsigned char stringaGPS[5]="GPRMC";
const unsigned char dimensioneBufferGPS=200;
const unsigned char dimensioneStringa=5;
unsigned char indice=0;
unsigned char trovato=0;
unsigned char i,j=0;
for(i=0; i<(dimensioneBufferGPS-dimensioneStringa) && !trovato; i++)
{
if(bufferGPS[i]==stringaGPS[j])
{
j++;
if(j==dimensioneStringa)
{
trovato=1;
indice=i;
}
}else{
if(j>0)
{
i=i-j;
j=0;
}
}
}
if(trovato){ //se abbiamo trovato la sequenza GPRMC ora dobbiamo contare tre virgole "," prima di leggere la prima coordinata
}
}
te come faresti?

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



