Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

CCS S İLE Gps kullanımı

Başlatan eeris43, 17 Ocak 2015, 10:46:18

eeris43

İyigünler arkadaşlar.Biz bir proje için gps sensoru Kullanıcaz .Aldığımız sensor GY-NEO6MV2 GPS Modülü dir.Bunu 18f4550 kullanırak rx den bilgileri okuyup usb üzerinden bilgileri bilgisayara aktarıcaz.Bunu nasıl yapabiliriz sizden de bilgi almak istedim uğraştırıcı bir işmi bilgileri almak ve dikkat etmemiz gerekn yer varmı .Birde elinde örnek uygulama olan varsa paylaşabilirmi

Recep METE

printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

sadogan

Amaç yanlızca usb den pc ye aktarmak ise FT232RL ile çok basitce haledebilirsin.

eeris43

Merhaba arkadaşlar soyle bir kd yazdım internetteki örneklerden fydalanarak.Ama ben sureklılığı sağlayamadım acaba odumda nerde hata var

$GPGGA,092750.000,5321.6802,N,00630.3372,W,1,8,1.03,61.7,M,55.2,M,,*76
$GPGSA,A,3,10,07,05,02,29,04,08,13,,,,,1.72,1.03,1.38*0A
$GPGSV,3,1,11,10,63,137,17,07,61,098,15,05,59,290,20,08,54,157,30*70
$GPGSV,3,2,11,02,39,223,19,13,28,070,17,26,23,252,,04,14,186,14*79
$GPGSV,3,3,11,29,09,301,24,16,09,020,,36,,,*76
$GPRMC,092750.000,A,5321.6802,N,00630.3372,W,0.02,31.66,280511,,,A*43

ŞU kodlardan $GPRMC kodu okucam ve bundan enlem boylam bilgisini çekicem eğer veri başlamadıysa Gps hazır değil yazsın istedim isiste similasyonu baaşrılı ama gerçek hayatta tam veri okuması yapamıyorum bazen yapıp sonra takılıyor ve yapmıyor acaba sorun nedir ?

/********************************************
D... ARAÇ TAKİP PROJESİ
21.01.2015

HAZIRLAYAN: EREN ERİŞ
********************************************/

#include <16F877A.h>

#FUSES XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay(clock=20000000)

#include <flexy_lcd.c>

#use rs232(baud=9600,parity=N,xmit=PIN_C6,rcv=PIN_C7,bits=8,stream=PORT1)

/*Değişkenler*/
char alinanveri;
char gpsveri[85];
int gpshazir=0;
int verisay;
int virgul[10];
int vs=0;
char enlem[11];
char boylam[11];
int k,i,m;
char baglanti;
int enlemfark,boylamfark;
CHAR enlemyon,boylamyon;
int durum=0;
/*Değişkenler*/


/*RS232 KEMEMİZ*/
#INT_RDA
void  rs232kesme(void)
{
   //disable_interrupts(int_rda);
   alinanveri = getchar();

   switch(alinanveri)
   {
      case '$' : {gpshazir=1; verisay=0; vs=0;} break;
      case ' ' : {gpshazir=0; } break;
   }
   
    gpsveri[verisay++]=alinanveri;
   
   
 
      
      if(gpsveri[3]=='R')
      {
         durum=1;
         if(gpsveri[verisay]==',')
         {
            virgul[vs++]=verisay; 
         }
      }
      
      else
      {
        durum=0;
      }
   
   clear_interrupt(int_rda);

}
/*RS232 KEMEMİZ*/

/*Bilgileri Ayiklayalım*/
void ayirma()
{
   if(durum ==1)
   {
   
   /*GPS Bilgi Alınıyormu ?*/
   baglanti=gpsveri[virgul[1]+1];
   
   /*Enlem Bilgisi Alalım*/
   enlemfark= (virgul[3]-virgul[2]);//Kaç Karakter olduğunu hesapladık.
   
   for(k=0;k<enlemfark;k++)
   {
   m=virgul[2]+k;
   enlem[k]=gpsveri[m+1];
   }
   
   enlemyon=gpsveri[virgul[3]+1];
   
   /*Enlem Bilgisi Alalım*/
   
   /*Boylam Bilgisi Alalım*/
   boylamfark= (virgul[5]-virgul[4]);//Kaç Karakter olduğunu hesapladık.
   
   for(k=0;k<boylamfark;k++)
   {
   m=virgul[4]+k;
   boylam[k]=gpsveri[m+1];
   }
   
   boylamyon=gpsveri[virgul[5]+1];
   
   /*Boylam Bilgisi Alalım*/   
   
   
   }
}
/*Bilgileri Ayiklayalım*/

/*RS232 KEMEMİZ*/
void main()
{
   lcd_init();
   
   printf(lcd_putc,"\f DUSCART GPS \n SISTEMI");
   delay_ms(500);
    printf(lcd_putc,"\f LUTFEN \n BEKLEYINIZ");
   delay_ms(500);
   while(1)
   {
      enable_interrupts(GLOBAL);
      enable_interrupts(INT_RDA);
      if(gpshazir==1)
      {
      ayirma();

      //printf(lcd_putc,"\f%C",baglanti);
      //delay_ms(250);
      
      //Enlemi Yazdıralım
      lcd_gotoxy(1,1);
      printf(lcd_putc,"E:");
      for(i=0;i<9;i++)
      {
      m=i+3;
      lcd_gotoxy(m,1);
      printf(lcd_putc,"%c           "enlem[i]);
      enable_interrupts(INT_RDA);
      }
      lcd_gotoxy(13,1);
      printf(lcd_putc,"- %c           "enlemyon);
      
      //Boylamı Yazdıralım
      lcd_gotoxy(1,2);
      printf(lcd_putc,"B:");
      for(i=0;i<9;i++)
      {
      m=i+3;
      lcd_gotoxy(m,2);
      printf(lcd_putc,"%c           "boylam[i]);
      enable_interrupts(INT_RDA);
      }
      lcd_gotoxy(13,2);
      printf(lcd_putc,"- %c           "boylamyon);
      
      delay_ms(250);
      
      }
   
      else
      {
         printf(lcd_putc,"\fGPS HAZIR DEGIL\n Lutfen Bekleyiniz");
         delay_ms(250);
      }
      
   }

}
/*RS232 KEMEMİZ*/