Forum: PC-Programmierung VB ASCII in Dezimal


von Tobias Tetzlaff (Gast)


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

von geloescht (Gast)


Lesenswert?

Dieser Beitrag wurde auf Wunsch des Autors geloescht.

von Tobias Tetzlaff (Gast)


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

von Simon Küppers (Gast)


Lesenswert?

Muss das nicht Mid$ statt Mid sein?
Ansonsten bin ich ratlos, mach mal vor

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

ein

msgbox Temperatur_Temp

von geloescht (Gast)


Lesenswert?

Dieser Beitrag wurde auf Wunsch des Autors geloescht.

von Tobias Tetzlaff (Gast)


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

von geloescht (Gast)


Lesenswert?

Dieser Beitrag wurde auf Wunsch des Autors geloescht.

von Tobias Tetzlaff (Gast)


Lesenswert?

Hi Nochmal,

Hiermit msgbox Temperatur_Temp
vor der felerhaften Zeile !!!

Kommt nur ein fenster, klar, msgbox,
da steht ok auf einem Button, sonst nichts drin!

von Tobias Tetzlaff (Gast)


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

von geloescht (Gast)


Lesenswert?

Dieser Beitrag wurde auf Wunsch des Autors geloescht.

von Tobias Tetzlaff (Gast)


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

von Tobias Tetzlaff (Gast)


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

von geloescht (Gast)


Lesenswert?

Dieser Beitrag wurde auf Wunsch des Autors geloescht.

von Tobias Tetzlaff (Gast)


Lesenswert?

Hi,

ok, das wird dann noch ein wenig dauern, aber nochmals Danke!

Gruß Toby

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
Noch kein Account? Hier anmelden.