- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Seite 2 von 4 ErsteErste 1234 LetzteLetzte
Ergebnis 11 bis 20 von 32

Thema: SerialPort & Visual Studio 2008

  1. #11
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.03.2006
    Beiträge
    200
    Anzeige

    Praxistest und DIY Projekte
    würde gern mal wissen wollen wo ich sowas wie eine Befehlsübersicht finde die sich auf ein bestimmtes Elemtent (Bspw. ein Button) bezieht.
    Gibt es sowas überhaupt? Mit der Hilfe bin ich da noch nicht warmgeworden.
    Bei einem Mikrocontroller ist das ja recht einfach, da schaue ich einfach in die Befehlsreferenz und kann mal mit leichten Programmen anfangen. Bei Visual Studio steh ich wie der Ochs vorm Berg.

  2. #12
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    24.05.2007
    Ort
    Im hohen Norden
    Beiträge
    227
    Reichen die Antworten im Microcoller-Forum nicht schon aus?

    Peter
    _________________________________________________
    [-X Quis custodiet ipsos custodes
    Ground-Effect-Stability-Robot www.peter-holzknecht.de

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Hör bloß auf , die Texten mich allo voll das ich das mit den Ports am mC falsch habe und schauen danach dann mal in das Datenblatt um festzustellen das ich es doch richtig gemacht habe
    Das bringt einen nicht wirklich weiter.

  4. #14
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    12.02.2006
    Beiträge
    164
    hmmm sehe gerade du willst ja nur vom uC lesen ... da brauchst du ja interrupts im visual studio ... hab ich auch noch nciht gemacht ...

    willst du jetzt ständig von uC schicken oder erst auf kommando oder wie?

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Also sobald ich in VB einen Knopf betätige soll jeweils eine 1, 2, 3 oder ein r für reset gesandt werden.
    Diese Zahl bzw das "r" für reset soll dann vom Controler ausgewertet werden und dem entsprechend soll er "Taste X wurde gedrückt!" zurück an den PC senden wo es dann in der Textbox ausgegeben wird.

  6. #16
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    dafür reichts µC-seitig mit Waitkey allemal.
    in VB kannst du das zb. per Polling abfragen (ein Timer der alle Hausnummer mSec nachschaut, ob im Puffer Daten sind und diese ausliest
    Code:
    SerPort.BytesToRead()
    ) oder, was viel eleganter ist,
    Code:
    SerPort.ReceivedBytesThreshold = wievieleZeichenwillstdu
    , den Serport mit
    Code:
    Private WithEvents SerPort As System.IO.Ports.SerialPort = New System.IO.Ports.SerialPort
    initialisieren und eine Funktion erstellen:
    Code:
    Private Sub Serial_BytesReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerPort.DataReceived
    
    End Sub
    Damit wird der Sub aufgerufen wenn x Bytes angekommen sind.
    Aufpassen musst du dann nur noch mit der Zuweisung auf die Textbox, das geht nicht so einfach. Mit einem Umweg über eine extra Variable gehts, also SerPort-Sub->Variable->Textbox.

    Wo liegt dein Problem mit der Hilfe? Wenn du den Cursor auf die Instanz der gewünschten Klasse setzt und F1 drückst, werden schön alle Mitglieder, Methoden, Eigenschaften etc. der Klasse aufgelistet...

    mfg

  7. #17
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Hab jetzt mal bei der TextBox noch ne Variable zwischen gepackt.
    Die .BytesToRead() verwende ich ja bereits in Verbindung mit einem TimerIntervall.

    Hier noch mal der Aktuelle Code:

    VB

    Code:
    Public Class Form1
        Dim Text As String
        Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated
            Me.InitializeComponent()
            SerialPort1.Open()
        End Sub
    
        Private Sub cmdEingabe1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdEingabe1.Click
            SerialPort1.BaseStream.WriteByte(1)
        End Sub
    
        Private Sub cmdEingabe2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdEingabe2.Click
            SerialPort1.BaseStream.WriteByte(2)
        End Sub
    
        Private Sub cmdEingabe3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdEingabe3.Click
            SerialPort1.BaseStream.WriteByte(3)
        End Sub
    
        Private Sub cmdReset_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdReset.Click
            SerialPort1.BaseStream.WriteByte("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
                    Text = SerialPort1.ReadByte
                    txtAnzeige.AppendText(Text)
                    txtAnzeige.ScrollToCaret()
                    If SerialPort1.BytesToRead = 0 Then
                        Exit Do
                    End If
                Loop
            End If
        End Sub
    
    End Class
    Bascom
    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 Pine.5 = Input
    USB Alias Pine.5                                            'Ist 1 wenn USB angeschlossen
    
    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
    
    Do
    A = Waitkey()
    Waitms 20
    If A > 0 Then
        Select Case A
          Case 49                                               'Das ist der ASCII Code für Taste "1"
             Led = 1
             Waitms 200
             Led = 0
             Print #4 , "Taste 1 wurde gedrückt!"
          Case 50                                               'Das ist der ASCII Code für Taste "2"
             Led = 1
             Waitms 200
             Led = 0
             Waitms 100
             Led = 1
             Waitms 200
             Led = 0
             Print #4 , "Taste 2 wurde gedrückt!"
          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
       End Select
    End If
    Loop
    
    End
    Habe jetzt mal noch eine LED mit eingebaut um zu sehen ob der Eingangsbefehl auch ankommt.

    Was ich nicht ganz bei dem Basecom verstehe , ich schreibe den Wert den ich von Waitkey() bekomme in A und springe dann je nach Wert in die entsprechenden Case. Nur steht im Testprogramm
    Code:
    Case 49                                               'Das ist der ASCII Code für Taste "1"
    Aber der ASCII für 1 ist doch 0x31 oder ?

  8. #18
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    15.08.2004
    Ort
    Graz
    Beiträge
    342
    du musst in VB aber auch den ASCII Code für "1" senden
    BaseStream.WriteByte verlangt als Argument ein Byte...
    also
    Code:
        Private Sub cmdEingabe1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdEingabe1.Click
            SerialPort1.BaseStream.WriteByte(49)
        End Sub
    mfg

  9. #19
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Ok ich hab einen kleinen Erfolg
    Zumindest Daten empfangen läuft jetzt

  10. #20
    Erfahrener Benutzer Fleißiges Mitglied Avatar von fat tony
    Registriert seit
    01.08.2007
    Ort
    Herford
    Alter
    40
    Beiträge
    147
    Kann es sein das ich da noch einen Fehler in dem Controller Programm habe ?
    Wie kann ich den mal Testen ob mein VB Programm die Daten über den COM sendet ?

Seite 2 von 4 ErsteErste 1234 LetzteLetzte

Berechtigungen

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

12V Akku bauen