Forum: Mikrocontroller und Digitale Elektronik GPS koordinaten umrechnen - sekunden??


von Basti (Gast)


Lesenswert?

Hi,

mein chip gibt mir, lt Datenblatt "Latitude Wert (nördlicher Breite: 
Sekunden / 256)" heraus.

die bytes sind "74 02 A5 8D"
und mein wert wäre in etwa 48.181230 +-

also rechne ich jetzt 7402A58D in dezimal um =
1946330509 und dann * 256?? Das wären dann 498260610304

Aber wie rechne ich es in Stunden/ Mintuen etc um?

von Karl H. (kbuchegg)


Lesenswert?

Hast du mal einen Link auf das Datenblatt?

von Markus F. (mfro)


Lesenswert?

Was da kommt, ist keine Zeit, sondern ein Winkel, also wird das mit den 
Stunden eher nix.

Ansonsten hat ein Grad 60 Bogenminuten und eine Bogenminute wiederum 60 
Winkelsekunden. Ein Vollkreis hat 360°, also entsprechend 60 x 360 = 
21600 Bogenminuten oder 60 x 60 x 360 = 1296000 Winkelsekunden.

Koordinaten werden aber nicht von 0-360° angegeben, sondern von 0-180 
entweder "links" (westlich) oder "rechts" (östlich) von Greenwich bzw. 
entsprechend nördlich oder südlich vom Äquator.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Markus F. schrieb:

> Ansonsten hat ein Grad 60 Bogenminuten und eine Bogenminute wiederum 60
> Winkelsekunden. Ein Vollkreis hat 360°, also entsprechend 60 x 360 =
> 21600 Bogenminuten oder 60 x 60 x 360 = 1296000 Winkelsekunden.

Eben.
Seine Zahl ist viel zu hoch. Da kann man runter rechnen soviel man will, 
man landet auf nix vernünftigem.
Daher: Datenblatt. Ich vermute dass schon mal die Bytereihenfolge nicht 
stimmt.

Gehe ich davon aus, dass das Highbyte zuerst kommt, dann lautet die Hex 
Zahl
02748DA5

Wenn ich das /60 /60 und /256 bearbeite, dann lande ich bei rund 44 
Grad. Würde zwar von der Grössenordnung passen, ist aber immer noch weit 
daneben.

Daher: Datenblatt wie die Bytefolge zu interpretieren ist.

von Achim S. (Gast)


Lesenswert?

48.181230 Grad (°) multipliziert mit 60 ergibt den Wert in 
Winkelminuten, nochmal multipliziert mit 60 in Winkelsekunden (")

48.181230°*60*60=173452,428"

Umgewandelt in Hex ergibt sicht daraus x0002A58C.

Verglichen mit deinem Ergebnis (x7402A58D) sieht man, dass du das 
höchstwertige Byte ignorieren muss (die x74) und den Rest direkt als 
Winkelsekunden interpretieren kannst. Um von Winkelsekunden auf Grad zu 
kommen musst du durch 3600 dividieren.

Kann auch sein, dass die 74 "umsortiert" werden muss und die 
niederwertigsten Stellen bildet. Das lässt sich aus dem Zahlenwert aber 
nicht ableiten, das bekommt man nur übers Datenblatt raus

von Karl H. (kbuchegg)


Lesenswert?

Achim S. schrieb:
> 48.181230 Grad (°) multipliziert mit 60 ergibt den Wert in
> Winkelminuten, nochmal multipliziert mit 60 in Winkelsekunden (")
>
> 48.181230°*60*60=173452,428"
>
> Umgewandelt in Hex ergibt sicht daraus x0002A58C.

Nicely done.

> Kann auch sein, dass die 74 "umsortiert" werden muss und die
> niederwertigsten Stellen bildet.


Es könnten auch die Kommastellen sein.
0x74 ist circa ungefähr 0x80, also die Hälfte was mit einem Byte möglich 
ist.
0.428 (also dein Kommaanteil) ist auch ungefähr 0.5. 0x74 ist ein klein 
wenig kleiner als als die Hälfte, 0.428 ebenfalls.

0x74 -> dezimal 116

116 / 256 -> 0.453

könnte hinkommen, wenn man die originale Angabe als geschätzt annimmt.

von <-o-> (Gast)


Lesenswert?


von Karl H. (kbuchegg)


Lesenswert?

<-o-> schrieb:
> https://de.wikipedia.org/wiki/NMEA_0183

Das hilft dir nur nichts bei gerätespezifischer binärer Ausgabe.

von Peter R. (pnu)


Lesenswert?

Basti schrieb:
> 48.181230
rechnen wir mal umgekehrt:

48,181 ....Grad mal 60 ergibt die Bogenminuten: 2890,8738, dezimal
nochmals mal 60 die Sache in Bogensekunden 173452,428, dezimal
nochmals mal 256 die Sache in 256stel sekunden: 44403821,57, dezimal

ohne die 57, in hex, ist das 2a 58 c6 d. Das sind also 28 bit

Deine Angabe aber umfasst 32 bit. Also stimmt irgendetwas nicht.

Rechnen wir nochmal, etwas gerundet:

48Grad sind 2880 Minuten, 172800 Sekunden und in hex: 2 A3 00 Sekunden.
Das mal 256: 2 A3 00 00 256stel-Sekunden. Die Stellenzahl dieser 
hex-Zahl  ist auch 28 bit und nicht 32 wie bei Dir oben.

Also stimmt bei Deiner hex-Zahl irgendetwas nicht.

: Bearbeitet durch User
von Walter S. (avatar)


Lesenswert?

Peter R. schrieb:
> Also stimmt bei Deiner hex-Zahl irgendetwas nicht.

Achim hat das doch schon vor einer halben Stunde gelöst ...

von Peter R. (pnu)


Lesenswert?

Walter S. schrieb:
> Achim hat das doch schon vor einer halben Stunde gelöst ...

Denk auch dran, dass zwischen Beginn einer Antwort und dem Absenden noch 
einige Zeit vergehen kann, besonders, wenn man sich der Rechnung sicher 
sein will und zwischendurch auch mal etwas andres tut.

Achims Anwort hab ich beim Absenden nicht gekannt, die trifft wohl den 
entscheidenden Punkt: die hex- Zahlen sind in umgekehrter Reihenfolge, 
höchstwertige Stelle zuletzt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.