Stimmt.
Ich habe jetzt noch eine Frage zum Umrechnen, wenn ich es als Code für Bascom schreibe (mit dem teste ich nur im Simulator):
Code:
$regfile = "m32def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$swstack = 32
$framesize = 32
Print "GPS-Datenausgabe"
Print "Version: 2.0"
Dim Stringinput As String * 120
Dim Teilstrings(13) As String * 13 'einzelne / zerlegte Strings
Dim Stringscnt As Byte
Dim Breitengrad1 As String * 3
Dim Breitengrad2 As String * 8
Dim Breiten1 As Single
Dim Breiten2 As Single
Dim A As Byte
A = 2
Dim B As Byte
B = 7
Dim Wert1 As Single
Dim Breitengrad As Single
Stringinput = "$GPRMC,162614,A,5209.8830,N,Beispiel,E,10.0,90.0,131006,1.2,E,A*13"
Stringscnt = Split(stringinput , Teilstrings(1) , ",") 'aufteilen
Breitengrad1 = Left(teilstrings(4) , A) 'Wert XX rausziehen
Print "Breitengrad1 : " ; Breitengrad1 'Wert XX anzeigen
Breitengrad2 = Right(teilstrings(4) , B) 'Wert YY.ZZZZ rausziehen
Print "Breitengrad2 : " ; Breitengrad2 'Wert YY.ZZZZ anzeigen
Breiten1 = Val(breitengrad1) 'ummodeln zum rechnen, da mit
Breiten2 = Val(breitengrad2) 'Strings nicht gerechnet werden kann
Wert1 = Breiten2 / 60 'rechnen
Print "Wert1 : " ; Wert1 'Wert 1 anzeigen
Breitengrad = Breiten1 + Wert1 'zusammenrechnen
Print "Breitengrad : " ; Breitengrad 'fertige Breitengradangabe ausgeben
End
Als Printwerte bekomme ich angezeigt:
GPS-Datenausgabe
Version: 2.0
Breitengrad1 : 52
Breitengrad2 : 09.8830
Wert1 : 0.164716597
Breitengrad : 52.164714811
Dazu muss man sich die Rechnung bei Wikipedia anschauen: http://de.wikipedia.org/wiki/NMEA_0183
oder hier der Auszug: XXYY.ZZZZ ⇒ XX° + (YY.ZZZZ / 60)° um die Werte vom Sensor in Gradwerte umzurechnen.
Doch bekomme ich, wenn ich mit dem Taschenrechner rechne andere Nachkommastellen raus. Warum ?? Ist der MC nicht so genau??
Gibt es noch elegantere Methoden den Breitengrad und Längengrad mit der Formel umzurechnen???
Lesezeichen