Guten Tag, ich bin neu im Programieren von Sofware die über Usb mit einem Atmega 16u4 funktionieren soll. Der 16u4 meldet sich erfolgreich als HID an. Jetzt will ich mit Visual C++ mir zugriff verschaffen doch da fangen meine Probleme an. Ich habe intensiv versucht durch Internetsuche mir die Infos die ich brauche zubeschaffen doch leider ohne Erfolg. Auch Jan Alexson konnte mir nicht weiter helfen. Meine vorgehens weise war bisher: - Guid beschafft - Handel erstellt Wenn ich jetzt versuche einen File anzulegen in den ich 8Bits schreiben kann werden keine Daten an den Atmega gesendet. Ich öffne den Handel und will mit CreateFile(....) weiter machen. Ich habe mich an Alexson´s Beispiel gehalten: DeviceHandle=CreateFile(DetailData->DevicePath, GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE ,(LPSECURETY_ATTRIBUTES)NULL,OPEN_EXISTING,0,NULL); Hier tritt dann ein Problem auf, nämlich das ich den Handel nicht mehr öffnen kann. Es wäre super wenn mir jemand weiter helfen könnte. Oder vllt kennt jemand ja ein Beispielprogramm mit Quellcode was ich mir anschauen könnte und von ihm lernen könnte :-) Natürlich ist das die faulere Methode ich hab auch nichts dagegen wenn ich Tipps kriege wo ich weitere Infos finden kann :-) Mit freundlichen Grüßen Jan
Das was Du da beschreibst ist kaum nachzuvollziehen. Wenn Du Quellcode suchst, dann bist Du bei J.A. genau richtig: http://lvr.com/hidpage.htm USB ist etwas, das Zeit erfordert und nicht husch husch zu machen ist! Gruß Potter
Jan R. schrieb: > Ich öffne den Handel und > will mit CreateFile(....) weiter machen. > > Ich habe mich an Alexson´s Beispiel gehalten: > DeviceHandle=CreateFile(DetailData->DevicePath, > GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE > ,(LPSECURETY_ATTRIBUTES)NULL,OPEN_EXISTING,0,NULL); > > Hier tritt dann ein Problem auf, nämlich das ich den Handel nicht mehr > öffnen kann. Ziemlich wirres Zeug was Du da schreibst. Aber warum willst Du den Handle zweimal öffnen?
Ja husch husch wollte ich das auch nicht machen. Wollte mir eine herrausforderung stellen in hardwarenaher Programierung :-) Ich hab mich allerdings etwas unglücklich ausgedrückt, für mich klang es gestern noch sehr schlüssig. Was ich genau meinte war bei dem Beispielcode gibt es ja die stelle GENERIC_READ|GENERIC_WRITE. Wenn diese dort so steht dann kann ich wenn ich das programm neustarte nicht mehr mein Divice online schalten und den handle öffnen. Erst wenn ich diese Zeile mit 0 ersetze geht dies wieder. Die Seite von J.A. kenn ich auch schon und hab versucht mir da nützliche Informationen für mich raus zu filten. Ich hoffe das jetzt die Infos besser sind und mir vllt jemand nen Tipp geben kann der mir weiter hilft. Gruß Jan
Ich bin gerade bei meiner suche auf einen gestoßen der ebenfalls ein Problem mit diesem Befehl hatte. Bei ihm hat es nur funktioniert wenn er anstatt GENERIC_READ|GENERIC_WRITE nur GENRIC_WRITE stehen hatte. Dies habe ich dann auch versucht und jetzt kommt das Programm wieder bis zu dem Punkt wie vorher wenn ich dort die 0 eingesetz hab. Was mach ich falsch oder was hab ich noch nicht verstanden und wo könnte ich es nachvollziehbar nachlesen. Gruß Jan
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.