Ciclo_de
17.10.2006, 09: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
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