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
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
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
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
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!
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
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
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
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.