VB ASCII in Dezimal

Gast #200491
Lesenswert?

Hallo,

ich bekomme von einem AVR Controller über die RS232 Schnittstelle
ASCII Zeichen.
Diese möchte ich im VB zu einer Dezimal Zahl wandeln.

Leider kann die Funktion Asc("ASCII-WERT")
anscheinend keine Variable wandeln.
Habe es so probiert:
1.)
Asc("Variable") 'gibt den Wert von V aus
2.)
Asc(Variable) 'Fehler : Falscher Funktionsaufruf


Kann mir jemand helfen?

Gruß Toby
Gast #200493
Lesenswert?

Hi,

ich habe folgendes, und es geht nicht!

Dim Temperatur_hex  As String
Dim Temperatur_Temp  As String
Dim Temperatur_dec  As Byte

Temperatur_hex = MSComm1.Input
Text4.Text = Temperatur_hex
Temperatur_Temp = Mid(Temperatur_hex, 1, 1)
Text5.Text = Temperatur_Temp

Temperatur_dec = Asc(Temperatur_Temp)      'Hier liegt der Fehler beim
Start

Text6.Text = Temperatur_dec
Meter1.HandValue = Temperatur_dec * 5


Gruß Toby
Gast #200496
Lesenswert?

Hi,

Hex soll eigentlich ANSI oder ASCII bedeuten.
Das sind die Daten, die der AVR schickt.

mit dem Mid nehme ich nur eine Stelle des Strings.

Temperartur_Hex ist ein Wert, den ich per Poti ändern kann, und auch
will.
Er sit von 0 bis 255 Groß, und kommt aus einem AD Wandler auf 8 Bit
Modus eingestellt.

Gruß Toby
Gast #200499
Lesenswert?

Das Problem, was ich habe, ist ja,
das ich ein Zeigerinstrument habe, welches als Value wert eine dezimal
Zahl braucht.
Danach richtet sich der Zeiger auf die Stellung des Wertes.

Da aber der AVR über einen Max232 nur ASCII Zeichen sendet,
also eigentlich Werte von 0 bis 255,
möchte ich diese Werte in Dezimal zahlen wandeln.

Wie sieht der Code mit deinem Vorschlag len(Temperatur_hex)>0 aus?

Ich verzweifel echt noch.

Das ist ja nicht das einzigste Problem,
ich möchte mehrere Werte, die der AVR misst,
nach einander an den PC senden, und dann mit VB anzeigen lassen.
Nur schicht der AVR erstmal nur einen Wert, das liegt ja an der
Firmware des AVR.
Aber bevor ich da was ändere, sollte es wenigstens mit einem Wert
gehen, dachte ich!

So weit... Toby
Gast #200501
Lesenswert?

So nochmal ein paar Werte :

In der Textbox4 steht zB. AAAAAAAAAAAAAAA
Das ist der wert, den ich vom AVR empfange.
In Textbox5 steht dann nur noch ein A.
Das machte ich, da ich ja nur ein A brauche.
Nur soll jetzt in Textbox6 der ASCII Wert 65 stehen.
Das tuts nicht, da ich ja voher den Fehler bekomm.
Drehe ich am Poti, habe ich diese Werte:
1.) BBBBBBBBB
    B
2.) /////////
    /
...
...

Vielleicht hilft es euch!

Gruß Toby
Gast #200502
Lesenswert?

Jippieeee !!!

Guido, es geht, und zwar einwandfrei!!!!

Danke danke danke!

Sach mal, wie könnte man denn nun einen 10Bit Wert senden,
und auswerten.
Dann müßte ich den String teilen, und nur zwi mal senden?
Die ersten 2 Bit, und die letzten 8 Bit ?!

In VB setze ich diese beiden werte dann wieder zusammen.

Könnte das so sein?

Wenn das gehen würde, dann könnte ich auch mehrere 8 bit Werte senden,
und in VB auswerten.

Aber woher weiß VB, welcher Wert zu welcher Anzeige(Zeigerinstrument)
gehört?

sagen wir mal, wir hätten Temperatur, Drehzahl, Spannung, die ich mit
dem AVR auswerte.

Gruß Toby

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren