Hallo,
Das erscheint mir fast nicht das passende Forum aber ich versuchs einfach mal.
Ich habe für den ATMega2560 im Excel/Visual Basic ein kleines Programm geschrieben mit der MSCOMM32.OCX Anbindung.
Mein Problem ist ich habe keine Routine um zu erkennen ob das USB angeschlossen ist und ein Datenstrom verfügbar ist oder nicht.
Wenn ich das USB abziehe dann bleibt meine Anzeige beim letzten eingelesenen Wert stehen und beginnt nicht wieder sich zu ändern obwohl ich den USB Stecker wieder eingesteckt habe und das ist was mich stört.
Kennt sich jemand mit dem Visual Basic im Excel aus um mir einen Tip geben zu können ?
Hier ist der Code wie ich die Messung beginne :
Code:
Set MSComm1 = New MSComm
MSComm1.CommPort = 3 'Gibt die Nummer des seriellen Anschlusses (COM) zurück oder legt sie fest.
MSComm1.Settings = "38400,N,8,1" 'Legt die Eigenschaften für die Baudrate, Datenbits und Stopbits fest oder gibt diese Parameter zurück.
MSComm1.RThreshold = 1 ' enable the oncomm event for every reveived character
MSComm1.InputLen = 0 ' Gibt die Anzahl an Zeichen zurück, die die Inputeigenschaft aus dem Empfangsbuffer liest oder legt diese fes.
MSComm1.InputMode = comInputModeText 'Gibt den Typ der von Input-Eigenschaft abgerufenen Daten zurück oder legt diesen fest.
MSComm1.SThreshold = 1 'enable the oncomm event for send characters
DoEvents
' Com Port1 öffnen
If MSComm1.PortOpen = False Then
MSComm1.PortOpen = True
End If
MSComm1.InBufferCount = 0 ' zurücksetzen des einkommenden Buffers um Fehlermeldung zu verhinden
Dim s, z() As String
DoEvents
Do
On Error Resume Next
While MSComm1.InBufferCount < 297 ' Erwartet wird im Buffer Pro
DoEvents
Wend
s = MSComm1.Input 'Jetzt sind sie da die Messwerte, als String
... usw.
loop
end sub
Ich habe schon alles möglich versucht um zum Beispiel über die empfangen Zeichen auszuwerten ob nun keine Daten mehr empfangen werden oder nicht aber hat bis jetzt alles nicht funktioniert. Unter USB stelle ich mir einfach los wie es auf der Verpackung steht "Plug&Play" und nicht "Plug&Pray".
Naja irgendwie muß es ja möglich sein die Endlosschleife dazu zu bewegen trotzdem wieder Messwerte aufzunehmen nachdem das USB Kabel neu eingesteckt wurde.
Gruß
Steffen
Lesezeichen