NMEA von GPS-Modul auswerten
Nabend,
Ich habe ein GPS Modul an einem AVR, welchen ich mit C programmiere. Desweiteren befinden sich am ATmega16 ein 16*2 LCD, womit ich mal die Längen und Breitengrade angeben möchte.
Wie man die Daten ausliest, ist mir klar.
Für Längen und Breitengrade kann ihc ja z.B. die Zeile "$GPGGA" verwenden. Nun muss ich ja theoretisch nur noch die Komata zählen, bis zu der Zahl, die ich gerne hätte.
Jedoch weiss ich nicht, wie ich genau die Zahl nach dem Komma (bzw. zwischen zwei Komata) in eine Variable einlesen kann.
Kann mir jemand weiterhelfen?
Mfg JeyBee
Re: NMEA von GPS-Modul auswerten
Zitat:
Zitat von JeyBee
Nabend,
Für Längen und Breitengrade kann ihc ja z.B. die Zeile "$GPGGA" verwenden. Nun muss ich ja theoretisch nur noch die Komata zählen, bis zu der Zahl, die ich gerne hätte.
Mfg JeyBee
hi das geht nur bedingt da du ja noch andere Feinheiten und variablen drinne hast, hatte des grade in ASM gemacht deswegen :P hier haste mal nen pahr sampels mit und ohne b.z.w. schlechten entfang.
und den haste ja noch manchmal zwischen den werten mehrere Vars.
Und dann gibt es noch Protokollunterschide (letztenbeiden zeilen) des erste ist NEMA 1.0 und des andere 2.2 (hinten die Kennung)
Code:
; $GPRMC,001915.928,V,0000.0000,N,00000.0000,E, , ,270102, ,*1D
; $GPRMC,191410 ,A,4735.5634,N,00739.3538,E,0.0 ,0.0 ,181102,0.4,E,A*19
; $GPRMC,140815.000,A,5339.2125,N,01000.8120,E,0.18,59.16,301209,0 , ,A*6E
; k 0 1 2 3 4 5 6 7 8 9 0 1
; ^ ^ ^ ^ ^ ^ ^ ^ ^
; | | | | | | | | Neu in NMEA 2.3:
; | | | | | | | | Art der Bestimmung
; | | | | | | | | A=autonomous (selbst)
; | | | | | | | | D=differential
; | | | | | | | | E=estimated (geschätzt)
; | | | | | | | | N=not valid (ungültig)
; | | | | | | | | S=simulator
; | | | | | | | Missweisung (mit Richtung)
; | | | | | | Datum: 18.11.2002
; | | | | | Bewegungsrichtung in Grad (wahr)
; | | | | Geschwindigkeit über Grund (Knoten)
; | | | Längengrad mit (Vorzeichen)-Richtung (E=Ost, W=West)
; | | | 007° 39.3538' Ost
; | | Breitengrad mit (Vorzeichen)-Richtung (N=Nord, S=Süd)
; | | 46° 35.5634' Nord
; | Status der Bestimmung: A=Active (gültig); V=void (ungültig)
; Uhrzeit der Bestimmung: 19:14:10 (UTC-Zeit)