Forum: Mikrocontroller und Digitale Elektronik CAN Bus Daten Umrechnungsproblem


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Stefan M. (metaworld)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

Ich habe folgendes kleines Projekt am laufen. Ich lese mittels eines 
Arduinos und eines CAN Bus Shields die FMS Schnittstelle eines LKW aus. 
Technisch funktioniert das ganze auch und ich kann Daten im Seriellen 
Monitor anschauen und umrechnen.

Doch nun kommt der Knackpunkt, ich bin zu doof zum Rechnen im Moment bei 
bestimmten Daten oder ich finde meinen Fehler nicht.

Jeder Datensatz besteht aus einer ID in deren Inhalt definiert ist der 
acht Byte lang ist.

Beispiel:

Daten von ID: 18FEFC27
Inhalt : FF E6 FF FF FF FF FF FF

Identifikator Erklärung: 18 FE FC 27

Byte Bit Länge   Information           Auflösung     Bereich 
Anmerkung
1     1     8    Scheibenwasser        0.4% / Bit   0 bis 100%

2     1     8    Kraftstoffstand       0.4% / Bit   0 bis 100%

und so weiter...

Wenn ich Byte zwei Betrachte E6 als HEX-Wert wird daraus 230 als 
Dezimalzahl. Weiter Rechne Ich dann 230*0,4 = 92. Der Tatsächliche 
Füllstand war von dem LKW wirklich 92% laut dem OEM Tester vom LKW 
Hersteller. Also richtig Umgerechnet.


Nun zu meinen Problem

Daten von ID: 18FEF527
Inhalt: C5 FF FF 16 24 FF FF FF

Identifikator Erklärung: 18FEF527
Byte Bit Länge Information       Auflösung     Bereich 
Anmerkung

4    1   16    Ausentemperatur  0,03125°C /Bit -273° bis 1735° offset 
-273°


Die beiden Hex Werte wären 16 und 24. Zusammen sollen beide die 
Aussentemperatur ergeben. Doch Rechnerisch komme ich auf folgendes:

1624 HEX macht 5668 Dezimal. 5668*0,03125°C = 177,125 °C. Wenn ich nun 
das Offset von -273° C dazu Addiere komme komme ich auf -95,875° Celcius 
also Falsch.

Wo liegt mein Fehler??

MfG Stefan Mandl

: Verschoben durch Moderator
von Tom (Gast)


Bewertung
2 lesenswert
nicht lesenswert

von Speed (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Stefan M. schrieb:
> Nun zu meinen Problem
>
> Daten von ID: 18FEF527
> Inhalt: C5 FF FF 16 24 FF FF FF
>
> Identifikator Erklärung: 18FEF527
> Byte Bit Länge Information       Auflösung     Bereich
> Anmerkung
>
> 4    1   16    Ausentemperatur  0,03125°C /Bit -273° bis 1735° offset
> -273°
>
> Die beiden Hex Werte wären 16 und 24. Zusammen sollen beide die
> Aussentemperatur ergeben. Doch Rechnerisch komme ich auf folgendes:
>
> 1624 HEX macht 5668 Dezimal. 5668*0,03125°C = 177,125 °C. Wenn ich nun
> das Offset von -273° C dazu Addiere komme komme ich auf -95,875° Celcius
> also Falsch.
>
> Wo liegt mein Fehler??
>
> MfG Stefan Mandl

Denke du hast nur die Bytes vertauscht:
HEX 16 = DEZ 22
HEX 24 = DEZ 36

36 * 256 = 9216
9216 + 22 = 9238

9238 * 0,03125°C = 288,69°C
288,69°C - 273°C = 15,69°C

von Stefan M. (metaworld)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

Lange nix mehr dazu geschrieben aber ich möchte mich mal bei Speed 
bedanken der den Schlüssel zum Erfolg hatte. Manchmal sieht man den Baum 
vor lauter Bäumen nicht :-). Es funktioniert soweit ganz gut und ich 
kann alle für den Fahrer Relevanten Daten auf ein Info-Display schicken 
dank eurer Hilfe.
Nochmals Danke für eure Hilfe.

MfG Stefan Mandl

von Stefan ⛄ F. (stefanus)


Bewertung
0 lesenswert
nicht lesenswert
Und ich finde super von Dir, dass du am Ende nochmal Feedback gegeben 
hast. Das wird viel zu oft im Eifer des Gefechts vergessen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.