Ich habe im Internet das Tutorial von [[codeandlife.com/.../avr-attiny-usb-tutorial-part-1]] durchgearbeitet und einen Attiny2313 erfolgreich mit Atmel Studio 6 Programmiert. Die usb.h Libary eingebunden und den Attiny2313 zum laufen gebracht. In Windows stand dann Unbekanntes Gerät, aber nach erfolgreichem usbwin32 Wizard wurd das USB Gerät erfolgreich erkannt. Nun versuche ich mit Visual Studio eine kleine Kommandozeilen C-Code zu schreiben und zu komplementieren um die Verbindung auch mal zu testen. Es soll einfach nur mal eine LED ein und ausgeschaltet werden. Bekomme aber den C-Code für Windows nicht komplementiert. Immer massig Fehlermundengen. Habe auch schon die Beispiele hier im Forum und im Internet heruntergeladen. Und da versucht den C-Code für Windows bzw. für die Kommandozeile neu zu debuggen. Ohne Erfolg. Auch mit Makefile immer wieder Fehler. Selbst wenn ich aus den Tutorial von oben den Code neu debuge, über die Makefile mit make all. Macht er mir nur die main.hex neu bei der usbtest.exe kommt ein Fehler. Das er eine Datei nicht findet. Es steht ja auch dabei das man MinGW benötigt ? aber was davon ? Ist das so schwer ? Oder hab ich was übersehen ? Gibt es da keine einfachere Möglichkeit ? Hat hier jemand von euch schon erfolgreich einen USB Treiber geschrieben und Komplementiert ? Oder hat hier jemand schon eine kleine Anwendung für Windows programmiert mit Visual Studio ? Welche Software dafür ist am besten geeignet ? Makefile mit MinGW oder was nimmt man am besten dafür ? Danke im Voraus !
:
Verschoben durch User
Norbert Sekan schrieb: > Gibt es da keine einfachere Möglichkeit ? Wesentlich einfacher wäre USB HID: https://www.obdev.at/products/vusb/automator.html Es gibt auch fertige Visual Studio Projekte: http://janaxelson.com/hidpage.htm
Hallo Norbert, du mußt das Rad nicht neu erfinden und einen eigenen Treiber schreiben. Es gibt auf SourceForge den LibUsb-treiber zum runterladen. Mit dessen Hilfe habe ich die V-USB Anbindung unter BorlandStudio schon gemacht. HID ist auch eine Lösung. Gruß. Tom
Ich habe mir von SourceForge den LibUsb-treiber schon heruntergeladen und versucht ihn im Visual Studio einzubinden. Ohne Erfolg. Auch mit dem QT-Creater habe ich es noch nicht geschafft diese Libary einzubinden. Ich kann aber mit dem BorlandStudio nochmal versuchen. Selbst wenn ich von [[codeandlife.com/.../avr-attiny-usb-tutorial-part-1]] das fertige Projekt, wie gesagt, mit der Makefile frisch komplementiere gibt mit GCC bei den libus Treibern, den Fehler aus. Das er die Datei nicht finden kann. MFG
Du "komplementierst" nichts. Wie kommst Du auf dieses Wort? Und wenn es Fehlermeldungen gibt, ist es sinnvoll, sich diese näher anzusehen, dafür sind die nämlich da. Man muss nicht hektisch das Handtuch bzw. die Entwicklungsumgebung werfen, wenn es einen Fehler gibt, und zur nächsten wechseln, in der Hoffnung, daß dann der Fehler magisch verschwindet. Lernen tut man von dieser Vorgehensweise sowieso nichts.
Weiß nicht wie ich darauf komme. Also eben Debuggen , oder so... Ich habe in den Visual Studio mich nochmal damit beschäftigt die libus-win32 Datein einzubinden. Ist ja im Internet alles beschrieben. Trotzdem kommt dann der Fehler das er die Datei libusb.dll nicht öffnen kann. Und wenn ich diese USB Libary nicht einbinde kommt Fehler Linker:2019 mehrfach. Aber ich werde mich damit noch mal weiter beschäftigen. Muss ja irgendwie gehn.... Also wenn ich dann auf debuggen drücke (F5). Ich hoffe das war jetzt richtig erklärt so von mir ? MFG
Warum nicht einfach 1:1 die Fehlermeldung nennen?
>Trotzdem kommt dann der Fehler das er die Datei libusb.dll nicht öffnen kann.
Je nachdem, was den Fehler ausspuckt, hast du evtl. die .dll statt der
.lib eingebunden (siehe readme.txt von libusb)
Norbert Sekan schrieb: > Trotzdem kommt dann der Fehler das er die Datei libusb.dll nicht öffnen > kann. Welches Programm gibt wann diese Fehlermeldung aus?
Hallo Norbert, ist alles schon länger her, ich versuche mich zu erinnern. Der LibUsb-Treiber wird nicht in dein C-Programm eingebunden. Du schließt dein USB-Gerät an den Computer und startest den Wizard von LibUsb, dieser richtet den Treiber für dein Gerät auf dem PC ein. Habe mal die wesentlichen Teile eines LibUsb-Programms in der Datei im Anhang. Ist kein vollständiges Programm, sondern nur Teile für USB, zur Orientierung. Hatte mir die Infos damals aus LibUsb und dem Internet zusammengesucht. Das C-Projekt besteht aus meiner Quelldatei. der LibUsb-Bibliothek "libusb.lib" und einer Datei "opendevice.c", die ich aus dem Internet geholt hatte. Die Aufrufe von "SendToDriver" richten sich an Funktionen im USB-Gerät, die anderen Aufrufe wenden sich an LibUsb oder opendevice. Viel Erfolg. Tom
So, ich habe die *.lib Datei nochmal richtig über Proberties->Linker->Input -> Additional Dependencies ->"C:\libary\libusb.lib" eingefügt. Jetzt bindet er auch richtig die Libary ein. Das geht schon mal ! Danke ! Jetzt kam beim debug die Fehler, jede *.dll Datei ->cannot find or open PDB file. Also mal im Internet gestöbert. Und siehe da. Wenn ich in Optionen da ein Hacken setze, das er die erforderlichen *.dll Dateien vom Microsoft Server sich selber holt. Geht das auch alles. Jetzt bleibt nur noch ein Fehler übrig. Und zwar: beim debuggen steht dann da : 'LED_test.exe' (Win32): Loaded 'C:\Windows\System32\libusb0.dll'. Cannot find or open the PDB file. Diese Datei ist aber vorhanden. Ich habe auch nochmal diese erforderliche Datei gelöscht und die passende Datei von libus-win32.zip Archiv herein kopiert. Der Fehler ist leider noch da. Bei der Readme von libus-win32 steht ja, das man die richtige Datei für das jeweilige System mit Hand rein kopieren soll, und ggf. Umbenennen muss. Hab ich ja gemacht. Aber der Fehler ist noch nicht weg. Wie gesagt ich nehme das Beispiel von [[codeandlife.com/.../avr-attiny-usb-tutorial-part-3]] und Versuche es im Visual Studio 2013 zum laufen zu bekommen. MFG
Diese Meldungen des Debuggers kannst Du schlicht und einfach ignorieren. Die PDB-Dateien der diversen DLLs brauchst Du nur, wenn Du diese DLLs debuggen willst. Das aber ist gar nicht Dein Ziel, Du willst Dein Programm debuggen. Und dafür reicht die PDB-Datei Deines Programmes aus. Wenn Du im Single-Step in eine in einer DLL vorhandene Funktion 'reingehst, landest Du so oder so in der Assembleransicht, weil Du den Quellcode der DLLs sowieso nicht haben wirst (mal abgesehen von libusb selbst, aber die wirst Du nicht debuggen wollen, das haben schon andere für Dich gemacht).
Habe mich nochmal etwas mit VS beschäftigt. Und das ganze Projekt noch frisch gestartet. Dann auf make Solution. Und schon ging es ohne Fehler. Nur beim debuggen bekommt man Fehler. Aber die kann man getrost übersehen. Danke an alle !
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.