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