Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : FTDI, VB6, Event oder Schleife



TKCUBA
08.03.2007, 14:27
Hab eine Kleine Frage!
Ich Programmiere gerade mit Visual Basic 6 ein Anwendung die mit Hilfe eines Ftdi Chips mein AVR Microcontroller USB fähig macht.
Ich benütze eine direkte Treiber-Ansteuerung (nicht über Virtualen Com-Port).

Wenn ich vom AVR daten erwarte Setze ich meine Windows Anwendung in eine Dauerschleife, die nur durchbrochen wird wenn der AVR daten gesendet hat oder eine Zeit abgelaufen ist (Timeout).

Das Problem ist in dieser Zeit ist meine Windows-Anwendung nicht benutzbar, wegen der Dauerschleife.

Bei RS232 benütze ich das Standart MSCOMM-Steuerelement,
dass löst einen Event aus. Was wesendlich Prozessorschonender ist und
Die Anwendung ist auch nicht blockiert.

Weiss jemand wie man so ein Event für die direkte USB Treiber- Ansteuerung macht.
MfG TKCUBA

NumberFive
11.03.2007, 06:55
Wenn du jetzt nicht in vb Programmieren würdest würde ich sagen mach doch einer Thread aber ich glaube das geht in VB nun dann wirklich nicht mehr. Warum willst du da direckt daruf ?

Hört sich interesant hat hats du da mal genaure informationen ich suche auch naoch nach einer lösung für die Kominkation PC AVR's

Gruß

Omeg@
11.03.2007, 18:39
Das Problem ist in dieser Zeit ist meine Windows-Anwendung nicht benutzbar, wegen der Dauerschleife.
Ich gehe mal davon aus das du meinst, dass das Programm sich dabei aufhängt solange die Schleife läuft, richtig? Wenn das der Fall ist, dann baue doch in die Schleife eine Wait-Funktion ein. Wie das geht kannst du da nachlesen: Klick! (http://www.vbarchiv.net/archiv/tipp_532.html) Wahrscheinlich reicht es schon wenn du in der Schleife ca. 10ms wartest und das Programm sollte weiter nutzbar bleiben.

MfG Omeg@

NumberFive
13.03.2007, 04:34
@Omeg

So "hängt" dein Programm aber auch für die Wait Zeit. Leider unter Stützt der Treiber keine Callback funktion was für VB wohl am einfachesten währe aber wenn schon mit Wait arbeiten dann richtig und die FT_SetEventNotification verwenden. Aber der Thread eröfnner melde sich ja nicht mehr drum hat er es bestimmt gelöst.

Gruß

TKCUBA
13.03.2007, 06:08
Ich melde mich schon noch. Ich musste nur mein verlängertes Wochenende geniesen.
Ich habs am Freitag noch so einiger massen gelöst, in dem ich, wie oben ebenfalls vorgeschlagen die Antwortzeit auf wenige ms eingestellt. Den Prozedur aufruf für die Abfrage in einen Timer, der auch alle Paar ms auslöst. Es Funktioniert zwar (und ich bin vorerst damit zufrieden, wegen zeitdruck), aber Windows ist nicht für seine Echtzeit bekannt, was zu Problemen führen könnte für die ich noch entsprechende Fehler Routinen einbauen muss. Das Schlimmste ist aufjedenfall geschaft. Jetzt kommt der etwas einfachere Teil. RS232, das Gerät hat mehrere Interfaces. Sowas wie das EventNotification hab ich gesucht, muss das bei gelegenheit mal ausprobieren.
MfG TKCUBA