Serialport mit VB2010 und Bascom

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von p.k.er.

    Serialport mit VB2010 und Bascom

    Hallo!
    Ich möchte mit VB2010 Strings an einen Atmega8 senden und diese dann über Lcd ausgeben.

    In VB sende ich das mit SerialPort1.WriteLine("String Zahl von 0-100").
    Wenn ich den string in einem Label ausgebe stimmt alles, also kann es nicht an VB liegen.

    In Bascom empfange ich mit:

    VB.NET-Quellcode

    1. dim wert as string * 10
    2. do
    3. If Ischarwaiting() = 1 Then
    4. Wert = Inkey()
    5. Cls
    6. Lcd Wert ; "%"
    7. end if
    8. loop
    9. end


    Am Lcd kommt immer nur "10" raus, warum?
    Muss ich in Bascom noch irgend etwas konvertieren?

    Danke schon mal im Voraus! :)

    p.k.er schrieb:

    VB.NET-Quellcode

    1. Cls
    Was wird denn mit Cls gelöscht?
    Der bisher empfangene Text?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Fehler in beschreibung

    Sorry habe was vergessen!

    ich sende ja zahlen von 0-100 in vb.

    wenn ich dei variable als byte, interger, word oder long deklariere kommt am display immer "10"

    wenn ich string nehme kommen in einem feld vom display immer drei striche
    Bilder
    • string am lcd.jpg

      871,29 kB, 2.592×1.552, 126 mal angesehen
    • byte integer usw am lcd.jpg

      366,1 kB, 2.592×1.552, 127 mal angesehen
    cool auf dieser seite habe ich das programmieren mit bascom gelernt.
    wälche befehle sind den deiner meinung nach falsch?

    wen ich mit "input" arbeite bleibt mein programm stehen das will ich aber nicht da der controller noch andere aufgabe nebenbei erledigen soll und nur dan einen text auf das lcd schreiben soll wen was im buffer steht.

    aber ich habe die option input schon getestet und er gibt mir dan überhaupt nichts aus

    VB.NET-Quellcode

    1. dim comein as string*16
    2. Do
    3. Input Comein
    4. Cls
    5. Waitms 50
    6. Locate 1 , 1
    7. Lcd Comein ; "%"
    8. Loop



    wen ich mit einem terminal arbeite funktioniert alles.
    liegt es doch an vb?

    hier mein vb code:

    VB.NET-Quellcode

    1. Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
    2. Try
    3. SerialPort1.WriteLine("56")
    4. Catch ex As Exception
    5. MsgBox("Fehler beim Senden! Sender gestopt.")
    6. Timer3.Stop()
    7. End Try
    8. End Sub





    Eierlein
    was meinst du damit.
    verstehe ich nicht?
    etwa so:

    VB.NET-Quellcode

    1. SerialPort1.WriteLine("99" & Chr(10) & Chr(13))

    da kommt das bei raus:
    Bilder
    • IMAG0396.jpg

      924,2 kB, 2.592×1.552, 109 mal angesehen

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „p.k.er“ ()

    Sicher bin ich mir nichtmehr, habe glaubich mit ISCHARWAITING geprüft ob iwas in der Warteschlange ist und dann mit Input ausgelesen. Dein String muss auf die weise mit CR (=> chr(13)) enden und darf kein VbCrLF (NewLine) enthalten..
    Sehr gut!

    VB.NET-Quellcode

    1. SerialPort1.WriteLine("99" & Chr(13))


    Geht auch soweit.
    Ich habe aber immer noch die ersten Striche vor dem Wert auf dem Display.
    Warum?
    Bilder
    • IMAG0398.jpg

      955,46 kB, 2.592×1.552, 122 mal angesehen