SparkFun Forums 

Where electronics enthusiasts find answers.

Your source for all things Atmel.
By sigve
#28854
hi!

I am trying to decode the Nmea string comming from my gps (http://www.sparkfun.com/commerce/produc ... cts_id=465)
I am planing to use atmega8 or atmega16 and program in C.
I have been reading a lot about nmea, but havent been able to find any pointers to how to parc it.

Is there any good site with a discription on how to do nmea parcing or someone on this forum who migth be able to help me?

One of the problems is that i can't find out how to use strings in C, I know only how in C++. Any advise?

cheers Sigve
By Lajon
#28955
http://www.obviously.com/gis/gps/gps_fixit.c
maybe. Just google (remember it is "parse" not "parc").
For mega8 (maybe mega16 also) you might need to find (or write) a parser that does not use sscanf and/or floating point (depending on your compiler this can use a lot a program space).

/Lars
User avatar
By leon_heller
#28962
I used a state machine when I needed to read some GPS data. It was quite simple.

Leon
By Nullz
#30040
The Procyon AVRlib has a NMEA parser that works well but it only parses GGA and VTG. You can add your own functions if you need to parse other NMEA packets. The library can also parse Trimble's TSIP.

I have used it on an Atmega8 and it works great.

The Procyon AVRlib can be found here: http://hubbard.engr.scu.edu/embedded/avr/avrlib/

Nullz