Bascom Problem mit HEXVAL

Gast #2849521
Lesenswert?
• ▲
▼
Ich hab da ein großes Problem mit HEXVAL und komme nicht weiter, 
vielleicht könnt ihr mir helfen.

Unten ist ein kleiner Teil aus einem Programm das die Kommunikation mit 
einem DXM1 Modul regelt (OBD2 Schnittstelle).
Ich bekomme vom Modul z.B. folgende Antwort "41 01 B5"
Wobei die "41" als Header und "01" als Datentyp zu sehen sind, in der 
"B5" steckt der eigentliche für mich interessante Messwert. 
Kommunikation via UART funktioniert problemlos, Einlesen und Anzeigen 
des empfangenen Strings ebenfalls.

Mit MID bekomme ich den Messwert "B5" als Teilstring herausgefiltert, 
funktioniert.

Jetzt muß ich nur noch den Teilstring zum Single wandeln um mit diesem 
dann die grafische Anzeige zu befüttern, und genau da liegt jetzt mein 
Problem, ich bekomms nicht zum Laufen.


Beispielcode:
Dim Temp_long as long , temp_string as string * 4
Dim calc_wert as single, calc_string as string * 4

temp_string = "B5"                        'Teilstring von der UART

   Temp_long = Hexval(temp_string)        'Umwandlung von String auf 
long
   Calc_wert = Temp_long                  'Umwandlung von long auf 
single
   Calc_wert = Calc_wert - 40             'noch ne kleine Berechnung um 
auf den tatsächlichen Messwert zu kommen
   Calc_string = Format(calc_wert , "   ")


Wenn ich jetzt calc_string anzeigen lasse habe ich noch immer "B5" 
anstatt 181 dastehen.
Kann mir bitte jemand sagen was ich falsch mache? Und warum kann 
überhaupt ein "B5" in einem Single stehen?

Bin für jede Hilfe dankbar.
#2849541
Lesenswert?
• ▲
▼
micha b schrieb:

> Kann mir bitte jemand sagen was ich falsch mache? Und warum kann
> überhaupt ein "B5" in einem Single stehen?

Das sollte dich stutzig machen. Bist du sicher, dass du dir auch die 
richtige Variable ausgeben lässt?

Ansonsten: Du kannst dir ja auch mal die ganzen Zwischenvariablen 
anzeigen lassen und so nachvollziehen, in welchem Schritt genau was 
passiert.
Gast #2850259
Lesenswert?
• ▲
▼
@str: (bei DEM Namen musstest du ja die Lösung wissen! :-) )
Das wird's wohl gewesen sein, wie blind war ich nur mal wieder????
Sorry, aber manchmal sieht man eben die bits vor lauter bytes nicht.

Schon komisch dass der Compiler da nicht mosert.

Danke!
Gast #2850981
Lesenswert?
• ▲
▼
micha b schrieb:
> Schon komisch dass der Compiler da nicht mosert.

@micha b: da würd ich genauer nachschauen. Vielleicht alte BASCOM 
Version? Hab deinen Beispielcode bei mir versucht kompilieren zu lasssen 
und aufgrund des Compiler Meckers (BASCOM Version 2.0.5.0) den Fehler 
entdeckt.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.