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 User
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
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
Und ich finde super von Dir, dass du am Ende nochmal Feedback gegeben hast. Das wird viel zu oft im Eifer des Gefechts vergessen.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.