Convertir NMEA en degrés.
Répondre à la discussion
Affichage des résultats 1 à 1 sur 1

Convertir NMEA en degrés.



  1. #1
    psockeur

    Convertir NMEA en degrés.


    ------

    Bonjour a tous !

    J'aurais besoin de votre aide svp.
    Sur ma carte psoc, je recois bien ma latitude et longitude, mais celles ci, dont en NMEA. J'aimerai donc les convertir en degrés.
    J'ai trouvé la formule pour convertir, mais impossible de savoir comment programmer tout ca.. ( en langage C )
    Voici mon code ci dessous. En vous remerciant.

    Exemple de conversion: 32 18.0489 N = 32degrées + 18.0489/60= 32.300815 N
    64 47.5086 >= 64degrées + 47.5086/60= 64.79181 W




    Code:
    #include <project.h>
    
    void main()
    
    {
        unsigned char compteur,caractere; /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    	UART_1_Start();//demarrage UART
    	LCD_Char_1_Start();//demarrage LCD
    	LCD_Char_1_Position(0,0);
    	
    	LCD_Char_1_ClearDisplay();
    	int tableau;
    	char entete[6],trame[50];
    	
    	
        /* CYGlobalIntEnable; */ /* Uncomment this line to enable global interrupts. */
        for(;;)
        {
    		caractere=UART_1_GetChar();
    		
    		if (caractere=='$')
    		{
    			for (tableau=0; tableau<5; tableau ++)			
    			{
    				caractere=UART_1_GetChar();
    				while(caractere==0)
    				{
    					caractere=UART_1_GetChar();
    				}
    				entete[tableau]=caractere;
    						
    			}
    			entete[tableau]='\0';
    			
    			if(strcmp(entete,"GPGGA")==0)
    			{
    				for (tableau=0; tableau<50; tableau ++)			
    			{
    				caractere=UART_1_GetChar();
    				while(caractere==0)
    				{
    					caractere=UART_1_GetChar();
    				}
    				trame[tableau]=caractere;
    						
    			}
    			trame[tableau]='\0';
    				
    			
    			}
    			int inc = 0;
    			char longi [15],lati[15];
    			while(inc <11)
    			{
    				longi[inc]=trame[inc+24];
    				lati[inc]=trame[inc+12];
    				inc++;
    			}
    			longi[inc]=trame[inc+24];
    			longi[inc+1]='\0';
    			lati[inc]='\0';
    			
    			LCD_Char_1_Position(1,0);
    			LCD_Char_1_PrintString(longi);
    			LCD_Char_1_Position(0,0);
    			LCD_Char_1_PrintString(lati);
    		}
    		// Opération coordonnées 1234,56 = 12+(34,56)/60
    	}
    }
    	
    
    
    /* [] END OF FILE */

    -----
    Dernière modification par Antoane ; 11/04/2017 à 14h46. Motif: Ajout balises code

Discussions similaires

  1. GPS et NMEA
    Par csjan dans le forum Électronique
    Réponses: 8
    Dernier message: 07/02/2015, 00h42
  2. GPS NMEA : trames RMC vs GGA
    Par hoffmann dans le forum Électronique
    Réponses: 3
    Dernier message: 19/05/2011, 19h09
  3. gps + pic + nmea
    Par KHEOPS1982 dans le forum Électronique
    Réponses: 13
    Dernier message: 04/01/2011, 11h38
  4. GPS + NMEA + mikroC
    Par KHEOPS1982 dans le forum Électronique
    Réponses: 1
    Dernier message: 19/04/2008, 19h00