www.mikrocontroller.net

Forum: PC-Programmierung VB ASCII in Dezimal


Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon Küppers (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: geloescht (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dieser Beitrag wurde auf Wunsch des Autors geloescht.

Autor: Tobias Tetzlaff (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

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

Gruß Toby

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.