- fchao-Sinus-Wechselrichter AliExpress         
Seite 3 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 21 bis 30 von 32

Thema: SerialPort & Visual Studio 2008

  1. #21
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    Anzeige

    Praxistest und DIY Projekte
    Dafür verwende ich ein virtuelles Nullmodem - com0com, das erstellt 2 virtuelle serielle Ports die miteinander verbunden sind, an einen "hängst" du dein VB-Programm, an den anderen ein Terminal (bei mir Docklight).
    Das funktioniert leider nicht mit dem Bascom-Simulator, habe zu diesem Problem schon hier und im englischen Forum gepostet und auch an den Support geschrieben, ohne Ergebnis...

    Hardwaremäßig funktioniert die Verbindung? schon durchgemessen, wenn dein VB-Programm sendet ob was am Controller ankommt und umgekehrt?

    mfg

  2. #22
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Ok hab das jetzt mal mit com0com und Docklight aufgebaut.
    Mein VB Prog sendet einwandfrei .Danke für den Tipp Netzman das sind echt mal nützliche tools.

    Also liegt mein Fehler in Basecom.
    Was ist denn mit Waitkey() oder Inkey() ? Gibt es da keine anderen Aufruf um Daten aus dem Buffer zu lesen ?

  3. #23
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    Gibt es, Inputbin liest die Daten binär in eine Variable, soviele Bytes wie die Variable groß ist, beginnend mit dem MSB.

    mfg

  4. #24
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Hab das ganze jetzt mal noch einfacher versucht :
    Code:
    Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Open "com4:" For Binary As #4                               'USB Buchse
    
    Dim My_byte As Byte
    Dim My_string As String * 1
    
    Do
       My_byte = Waitkey()
       Print #4 , "Empfangen: " ; My_byte                       'Gibt den ASCII-Code des Zeichens zurück
    
       My_string = Waitkey()
       Print #4 , "Empfangen: " ; My_string                     'Gibt den Text zurück
    Loop
    End
    Geht aber immer noch nicht

  5. #25
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    Was genau geht nicht?
    Codemäßig sollte das IMHO hinhauen.
    Wie gesagt, der Simulator hat ein Problem mit seriellen Terminals, er empfängt nichts, senden geht aber.
    Wenn du InSystem testest, würde ich wie schon erwähnt prüfen ob auch die Signale dort ankommen wo sie sollten.

    mfg

  6. #26
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Also das VB Prog läuft so wie es soll.
    Habe mit dem com0com die Buttons empfangen und umgekehrt wurden die Zahlen oder Zeichen die ich in Docklight eingab auch in dem VB Fenster ausgegeben.
    Klemme ich jetzt mein VBprog an den mC und lasse den mC irgendwas senden kommt das auch im Fenster an.
    Wenn ich aber versucht mit dem Oben stehenden Prog die Sachen die ich an den mC sender von diesem einfach wieder zurück zu schicken zu lassen macht er das nicht.

  7. #27
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Also ich bin jetzt schon mal einen Schritt weiter , das Problem war das der "Print #4 , Wert " immer noch ein CR und LF mitschickt die ich jedoch in meiner Abfrage nicht berücksichtigt hatte, hab jetzt
    jetzt noch ein ";" dahinter gehangen und schon läuft die Kiste

  8. #28
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    So hab jetzt alles am laufen.
    Das Problem war das ich einmal nicht nur das Zeichen sondern auch den CR und LF sendete und zum anderen hatte ich "inputbin A" anstelle von "Inputbin #4 , A" geschrieben.

    Noch mal vielen Dank für eure Hilfe.
    Vor Allen an Netzman , ohne die Tools hätte ich das nicht so schnell herausgefunden.

  9. #29
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Hallo tony,

    der Quellcode von deinem VB-Programm wäre sicher von allgemeinen Interesse. Ich für meinen Teil interessiere mich auf jeden Fall dafür.
    Würde mich freuen, wenn du deinen Quellcode hier posten würdest.

    An Netman ebenfalls mein Dank, hätte mir schon fast für viel Geld ein Nullmodemkabel gekauft. Eventuell wäre es hilfreich den von mir geposteten Wiki-Eintrag um einen kurzen Hinweis zu diesem Programm zu erweitern.

    Gruß, pacer

  10. #30
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Hier einmal die Bedienoberfläche zu dem Programm :

    Bild hier  

    Und hier der VB Code :
    Code:
    Public Class Form1
    
        Dim Anzeigewert As String
    
        Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
            SerialPort1.Open()
        End Sub
    
        Private Sub cmdEingabe1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdEingabe1.Click
            SerialPort1.Write(1)
        End Sub
    
        Private Sub cmdEingabe2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdEingabe2.Click
            SerialPort1.Write(2)
        End Sub
    
        Private Sub cmdEingabe3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdEingabe3.Click
            SerialPort1.Write(3)
        End Sub
    
        Private Sub cmdReset_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdReset.Click
            SerialPort1.Write("r")
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            If SerialPort1.BytesToRead > 0 Then
                Do
                    Anzeigewert = Chr(SerialPort1.ReadByte)
                    txtAnzeige.AppendText(Anzeigewert)
                    txtAnzeige.ScrollToCaret()
                    If SerialPort1.BytesToRead = 0 Then
                        Exit Do
                    End If
                Loop
            End If
        End Sub
    
    End Class
    Und der Basecom-AVR:
    Code:
    $prog , 255 , &B11011001 ,                                  'Quarz an / Teiler aus / Jtag aus
    
    $regfile = "m2560def.dat"
    $hwstack = 82                                               '80
    $framesize = 68                                             ' 64
    $swstack = 68                                               '44
    
    $crystal = 16000000                                         'Quarzfrequenz
    
    Config Pind.5 = Output
    Led Alias Portd.5
    
    
    Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
    Open "com4:" For Binary As #4                               'USB Buchse
    
    
    
    Dim A As Byte
    Led = 1
    
    Do
       Inputbin #4 , A
       If A > 0 Then
           Select Case A
             Case 49                                            'Das ist der ASCII Code für Taste "1"
                Led = 0
                Print #4 , "LED = Ein"
             Case 50                                            'Das ist der ASCII Code für Taste "2"
                Led = 1
                Print #4 , "LED = Aus"
             Case 51                                            'Das ist der ASCII Code für Taste "3"
                Print #4 , "Taste 3 wurde gedrückt!"
             Case 114                                           'Das ist der ASCII Code für Taste "r"
                Print #4 , "Reset..."
                Goto 0
             Case Else
                Print #4 , "Error"
          End Select
       End If
    Loop
    
    End

Seite 3 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad