Autor Tema: Error de lectura de datos GPS  (Leído 1158 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fronz_99

  • PIC10
  • *
  • Mensajes: 2
Error de lectura de datos GPS
« en: 17 de Octubre de 2016, 23:14:34 »
Hola, les quería comentar mi problema.
Estoy tratando de leer los datos de un GPS Ublox neo-6m con un PIC16F877A usando las funciones UART de mikroC, el problema es que cuando intento leer los datos con ese código  cuando quiero mostrar lo de la variable gpsdata, no me muestra nada, cual puede ser el problema?

Probé solo leyendo, sin ninguna condición y lo que me muestra e la primera letra G y luego la P repetida, ejemplo: GPPPPP, y asi con cualquier cosa, el primer caracter solo y luego el segundo repetido varias veces.

void main()
{
UART1_Init(9600);
TRISB=0x00;
Lcd_Init();
delay_ms(100);

      while(1){
             if(UART1_Data_Ready())
    {
    a1 = UART1_Read();
    if(a1 == '$')
      {a2 = UART1_Read();
       if(a2 == 'G')
         {a3 = UART1_Read();
          if(a3 == 'P')
            {a4 = UART1_Read();
             if(a4 == 'G')
               {a5 = UART1_Read();
                if(a5 == 'G')
                   {a6 = UART1_Read();
                    if(a6 == 'A')
                       {for(x=0;x<10;x++)
                        {
                                    gpsdata[ x ]=UART1_Read();
                         }
                       }
                     }
                   }
               }
            }
         }
      }
Lcd_Out(1,1,gpsdata);
    }
}

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Error de lectura de datos GPS
« Respuesta #1 en: 17 de Octubre de 2016, 23:31:03 »
Viendo lo que queres hacer... Por que no mejor algo asi ?

Código: C
  1. #include <string.h>
  2.  
  3. char Texto[50];
  4.  
  5. void main(void)
  6. {
  7.  
  8.         //Aca setup modulos
  9.  
  10.  
  11.         while(1)
  12.         {
  13.                 UARTx_Read_Text(Texto,'\n', 48);
  14.                 if(strncmp("$GPGGA",Texto,6))
  15.                 {
  16.                         Lcd_Out(1,1,&Texto[7]);
  17.                 }
  18.         }
  19. }

Tengo dudas en su usar '\n' o '\r' o ambos, ya que no se como termina. Pero por ahi podrias llegar a usar '$', entonces comparas 1 menos luego

Desconectado fronz_99

  • PIC10
  • *
  • Mensajes: 2
Re:Error de lectura de datos GPS
« Respuesta #2 en: 18 de Octubre de 2016, 00:28:36 »
en teoria tendria que funcionar eso que me pasaste pero no, no me mostraba nada, le cambie el if para que me muestre "BIEN" y tampoco lo muestra.


 

anything