gps den veri alma

Başlatan f_machine, 04 Mayıs 2009, 19:50:07

f_machine

merhaba arkadaşlar;
elimde sirfstar 3 çipli bir gps modül var.Modülden gelen karakterleri okuyorum..$gprmc gelmesi gerekirken,saçma sapan karakterler geliyor.Veri almak için aşağıda programı yazdım ama bi türlü $gprmc gelmiyo hatta,$ bile gelmiyo,nerede hata yapıyorum acaba?

usart_init(4800);

                                 for (;;)


                                     {
                                                    while (!(Usart_Data_Ready()));
                                                    x=Usart_Read();

                                                              Lcd_Chr_Cp(x);
                                                              Delay_Ms(100);





                                     }

aykuto

$GPRMC 'nin geldiği formatın ismi NMEA dir. Bazı GPS alıcıları, NMEA formatı dışında da veri gönderebiliyor. U-Blox'un GPS alıcılarında bu ayarların yapılabildiği bir yazılım bulunuyor. Belki kullandığınız GPS alıcısı için de böyle bir yazılım vardır. Sitesinden yada datasheet'inden gerekli bilgilere ulaşabilirsiniz zannediyorum.

AST

GPS'ten gelen TXA ve TXB uçlarını ters çevirerek dene.Muhtemelen polariteden kaynaklanıyordur.

f_machine

cevaplar için teşekkürler,ama gps alıcıyı bilgisayarın seri portuna bağladığımda $gprmc falan geliyor ama picte alamıyorum veriyi,anlamayadım bi türlü sorunu...

zenze

farklı bir protokolde veri geldiği için okuyamıyorsun sanırım. nmea şeklinde veri göndermesi için ilk önce sen gps e bazı komutlar göndermelisin oda datasheetinde yazar.

BenC

Sirf default olarak 4800bps de Nmea nın belli verilerini verir. en basitinden reset anında donanım ve yazılım bilgilerini porta gönderir.  Sizin hatanız sanırım baud  ayarında olabilir. anlamsız karakterler alıyorsanız büyük bir ihtimalle ayarlamış olduğunuz baudrate uyumsuz ondandır. Eğer PC de sağlıklı bir biçimde alıyorsanız PC de (hyper terminal) deki baudrate i kullanın.
ŞEHİT KANIYLA ALINMIŞ BU GÜZELİM VATANIN TOPRAKLARI KARIŞ KARIŞ SATILIYOR!!  VATAN HAİNİ OLMA!!

f_machine

sorunu hallettim.Gps in tx ucu max232 ye bağlı olduğundan data tersleniyormuş.Diğer arkadaşlara faydalı olması açısından kodu veriyorum.

           void usart_init(void ) {


	TRISC6=1;
	TRISC7=1;
    SPBRG=2081;
	SPBRGH=2081>>8;  //baud rate 4800
	BRGH=1;
	BRG16=1;
	RXDTP=1;  //rx  datası terslenmiş
	SYNC=0;
	SPEN=1;
	CREN=1;
    RX9=0;
	RCIF=0;
	
	
}