Forum: Mikrocontroller und Digitale Elektronik Versionsangabe in Hex


von Andreas H. (andy61)


Lesenswert?

Hallo Leute

Hab im Moment ein Verständigungsproblem.

In meiner Doku steht folgende Definition:

Wert 0: ...
Wert 1: ...
Wert 2: ...
Wert 3: ...
Wert 4: ...
Wert 5: 0xnn Firmware version, MSB
Wert 6: 0xnn Firmware version
Wert 7: 0xnn Firmware version
Wert 8: 0xnn Firmware version, LSB

The firmware version is represented in four bytes (VAL5 … VAL8,
hex encoded):
Example: 0x01 0x02 0x00 0x14 = V1.2.0.20

Ich habe in meinem Empfangsbuffer (Wert0-8)einzelne "unsigned char" 
Werte,
die ich zu einer Version zusammensetzen muss.

Kann mir nun jemand erklären, wie sie eine Versionsangabe 1.2.0.10
übertragen werden. 0x14 = 20d kann ich ja noch nachvollziehen.

Ich nehme nicht an, dass nur die Werte

0x00-0x09 = 0-9
0x10-0x20 = 16-32
0x21-0x30 = 33-48 usw.
...

zur Verfügung stehen werden.

Bin für jeden Tip sehr dankbar!

von spess53 (Gast)


Lesenswert?

Hi

>Kann mir nun jemand erklären, wie sie eine Versionsangabe 1.2.0.10
>übertragen werden. 0x14 = 20d kann ich ja noch nachvollziehen.

Wie wäre es mit '0x01 0x02 0x00 0x0A'?

MfG Spess

von Magnus M. (magnetus) Benutzerseite


Lesenswert?

A = 10
B = 11
C = 12
D = 13
E = 14
F = 15

von Walter S. (avatar)


Lesenswert?

Andreas Häusler schrieb:
> Kann mir nun jemand erklären, wie sie eine Versionsangabe 1.2.0.10
> übertragen werden.

0x01 0x02 0x00 0x0a

von Horst (Gast)


Lesenswert?

Hexzahlen sind zur Basis 16.
Also:
 0 = 0x00
 1 = 0x01
 ...
 9 = 0x09
10 = 0x0A
11 = 0x0B
12 = 0x0C
13 = 0x0D
14 = 0x0E
15 = 0x0F

Eine 0x10 entspricht einer dezimalen 16.
Wenn du aber eine dezimale 10 in Hex ausdrücken willst, dann ist es 
0x0A.

Alles klar?

von Andreas H. (andy61)


Lesenswert?

Hallo Leute

Herzlichen Dank für Euren Beitrag, aber das bringt mich so nicht weiter.

Wie gesagt, so wie ich das verstanden habe, habe ich ja nur 1Byte zur
Verfügung welches als Hex- Wert zu interpretieren ist.

Wenn mir also jemand erklären kann, wie die folgende Versionsangabe
übertragen wird:

  1.2.0.10

der folgende Ansatz funktioniert ja gemäss

  Example: 0x01 0x02 0x00 0x14 = V1.2.0.20

nicht:

1 = 0x01
2 = 0x02
0 = 0x00
10 = (eigentlich 0x0A) wenn aber 0x10 daher kommt,
beträgt die Wertigkeit 16 und eben nicht 10

von delta (Gast)


Lesenswert?

Andreas Häusler schrieb:
> 10 = (eigentlich 0x0A) wenn aber 0x10 daher kommt,
> beträgt die Wertigkeit 16 und eben nicht 10

10 = 0x0A (1Byte)
16 = 0x10 (1Byte)
Wo ist das Problem?

von Andreas H. (andy61)


Lesenswert?

OK

So wie ich das verstanden habe, schicken sie mir über die Schnittstelle
den dezimalen Wert 14, den ich als 20 interpretieren muss.
Wenn sie den Wert 20 schicken würden, macht die Aussage hex encoded
für mich ja keinen Sinn. (Aber wie heisst es doch so schön, nichts ist
unmöglich, Tojota)

Wert 5: 0xnn Firmware version, MSB
Wert 6: 0xnn Firmware version
Wert 7: 0xnn Firmware version
Wert 8: 0xnn Firmware version, LSB

The firmware version is represented in four bytes (VAL5 … VAL8,
hex encoded):
Example: 0x01 0x02 0x00 0x14 = V1.2.0.20

Was senden sie mir denn für einen Wert, wenn ich in der Version den
Wert 12 anzeigen muss?

von spess53 (Gast)


Lesenswert?

Hi

>Was senden sie mir denn für einen Wert, wenn ich in der Version den
>Wert 12 anzeigen muss?

0x0C.

von Bronco (Gast)


Lesenswert?

Andreas Häusler schrieb:
> So wie ich das verstanden habe, schicken sie mir über die Schnittstelle
> den dezimalen Wert 14, den ich als 20 interpretieren muss.#
      ^^^^^^^^^
Ja was jetzt, bekommst Du 14 oder 0x14 (=20)?

> Wenn sie den Wert 20 schicken würden, macht die Aussage hex encoded
> für mich ja keinen Sinn.
0x20 = 32 , warum macht das keinen Sinn?


> Was senden sie mir denn für einen Wert, wenn ich in der Version den
> Wert 12 anzeigen muss?
12 = 0x0C

Was ist denn jetzt eigentlich Dein Problem?

von spontan (Gast)


Lesenswert?

@Andreas Häusler

Schreib nicht so viel, sondern setz Dich doch erst einmal mit dem 
Zahlensystem auseinander.

>den dezimalen Wert 14, den ich als 20 interpretieren muss.

Die 14 ist hier kein dezimaler Wert. Steht doch schon in der Doku: "hex 
encoded"

von Simon K. (simon) Benutzerseite


Lesenswert?

Andreas Häusler schrieb:
> Wie gesagt, so wie ich das verstanden habe, habe ich ja nur 1Byte zur
> Verfügung welches als Hex- Wert zu interpretieren ist.

Nö, als dezimal natürlich.

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.