Hä? Du kannst mit dem CRC nur feststellen, ob der gesamte Block korrekt ist. Weder kannst du dir einzelne Bytes "rauspicken" und testen, noch kann man damit lokalisieren, in welchem Byte der Fehler sitzt.
Druckbare Version
Nein, ich lasse alle 9 Byte überprüfen also die 8 Byte nutzdaten + CRC-Byte, ich meine nur dass ich bisher nur die ersten 2 Byte, also die Temperatur Daten, händisch auf plausibilität Geprüft habe, also so dass keine Großen sprünge da sind etc. Also schon immer alle 9 Byte von CRC überprüfen anders gehts ja net. (klar geworden was ich meine?)
Ja.
Nur was soll ich jetzt mit dem "funktioniert nicht" anfangen? Wenn du weitere Hilfe willst, musst du schon mit konkreten Details rüberkommen. Angefangen mit der Info, um was für ein Bauteil es sich handelt, und ein konkretes Beispiel der ausgelesenen Daten wäre auch nicht schlecht.
ok, ich hab den DS 18(s)20 von Dallas 2 Stück, Die Daten handelt sich um die Daten die ich lese sind folgende (aus dem datenblatt kopiert)
Die jage ich durch deine funktion blos das ich die konstante von 0x8C zu 0x99 Geändert habe, weil sie sonst immer(!!) einen Fehler erkannte (funktioniert nicht) -> das war meine Nachfrage.Code:SCRATCHPAD
(POWER-UP STATE)
Byte 0 Temperature LSB (AAh)(85°C)
Byte 1 Temperature MSB (00h)
Byte 2 TH Register or User Byte 1*
Byte 3 TL Register or User Byte 2*
Byte 4 Reserved (FFh)
Byte 5 Reserved (FFh)
Byte 6 COUNT REMAIN (0Ch)
Byte 7 COUNT PER °C (10h)
Byte 8 CRC*
Aber danke für deine Geduld
Also hier ein dump von den Daten:
Also so ungefähr 25 °CCode:0x32 0x00 0x4b 0x46 0xff 0xff 0x0e 0x10 0xfa
Ich prüfe: wenn rückgabe wert =0 dann Korrekt wenn nicht dann flasch (ähm ich guck mal schnell ob ich das ! gesetzt habe) Nein habe ich nicht verdammt, es tut mir echt leid, das hätte/muss mir früher auffallen. Danke trotzdem jetzt blick ich auch das CRC, super danke!!
Also nochmal super danke, für deine Zeit!!!