PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GPS Daten - Verarbeitungsproblem



Ciclo_de
17.10.2006, 08:15
Servus,

ich habe einen Royaltek serielle GPS-Maus und eine LCD-Display an einem ATmega8. Die GPS Maus sendet ca. jede Sekunde schön brav die GPS Daten die ich haben will. Es kommen nacheinander wie $GPGGA,14.., $GPGSV,2,1.., $GPGSV,2,.., $GPRMC,14.., $GPVTG,2,.. etc.
Wenn ich jetzt folgendes Programm starte bekomme auf den LCD viel mehr GPRMC als GPGGA, d.h. in ca. 10 Sekunden 1x ein GPGGA Datensatz und ca. 180 GPRMC Datensätze von dem Programm ausgewertet obwohl die Maus nur 1-2 Mal pro Sekunde die Daten sendet


$regfile = "m8def.dat"
$crystal = 8000000
$baud = 4800

Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.1 , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5
Config Lcd = 40 * 4

Initlcd
Cursor Off
Cls

Dim A As Byte
Dim GpsDaten As String * 75
Dim Gga As Integer
Dim Rmc As Integer

Gga = 0
Rmc = 0

Do
Do
A = Inkey()
If A = 36 Then Input GpsDaten
Typ = Mid(GpsDaten , 1 , 5)
Loop Until Typ = "GPGGA" OR Typ = "GPRMC"

'Hier würden jetzt die einzelnen Info`s aus dem GPSDatensatz gesplittet

Locate 1, 1
Lcd Mid(GpsDaten, 1, 40)

If Typ = "GPGGA" then
Gga = Gga +1
Locate 2, 1
Lcd "GGA = " ; Gga
End if

If Typ = "GPRMC" then
Rmc = Rmc +1
Locate 3, 1
Lcd "GGA = " ; Gga
End if
Typ = ""
Loop

End


Lasse ich die Do until Schleife nur durch GPGGA unterbrechen läuft alles wie es soll. D.h. irgendwie funktioniert das ganze nicht mehr wenn auch auf GPRMC reagiert werden soll.
Ich bin langsam am verzweifeln und ich glaub ich sehe den Wald vor lauter Bäumen nicht mehr.

Bin für jeden Tip dankbar

Gruss

Alex aka Ciclo

Freiheitspirat
17.10.2006, 09:33
Könnte es daran liegen, das Du die Variable "Typ" bzw. "GpsDaten" nach "Abarbeitung" nicht initialisierst, sondern sie weiterhin ihren Wert behalten egal was in "A" ankommt ?

Probier mal ein: GpsDaten = "" zwischen den beiden "Do's"...