Hi :) Ich versuche seit einigen Stunden meinen ATmega32 mit Hilfe der V-USB libary mit meinem Laptop zu verbinden. Leider scheiterts schon beim kompiliert. Da ich keine Ahnung von V-USB habe, wollte ich einfach mal dieses Tutorial nachprogrammieren: http://hackaday.com/2012/02/09/learning-to-use-the-v-usb-avr-usb-firmware-library/ Nur leider kommt beim komilieren folgender Fehler: "usbdrv.c:537: undefined reference to `usbCrc16Append'" Das deutet für mich darauf hin, dass die Datei, in der die Funktion "usbCrc16Append" definiert wird, nicht eingebunden ist. Also habe ich alle Dateien, die zu V-USB gehören nach dem Konstruktor besagter Funktion durchsucht. Und siehe da, ich habe sie in "usbdrvasm.S" gefunden. Um das Problem zu beheben, habe ich "usbdrvasm.S" zu meiner Makefile hinzugefügt (ASRC = ../../PROJECTS/test/usbdrvasm.S") und sie mit ' #include "usbdrvasm.S" ' in main.c eingebunden. Leider führte das nurnoch zu mehr Fehlern. Eine kleine Auswahl: usbdrvasm.S:220: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'implementation' usbdrvasm.S:222: error: expected declaration specifiers or '...' before '(' token usbdrvasm.S:222: error: conflicting types for 'usbCrc16' usbdrv.h:319: error: previous declaration of 'usbCrc16' was here usbdrvasm.S:223: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'r24' usbdrvasm.S:224: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'r22' usbdrvasm.S:225: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'variables' usbdrvasm.S:226: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'r18' usbdrvasm.S:230: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'r24' usbdrvasm.S:231: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'X' Ich hab an usbdrvasm.S und usbdrv.c nicht rumgespielt. Kann es sein, dass man Assembler Dateien nicht so einbindet, und mein Compiler sie deshalb versucht als C zu verstehen? Ich wäre euch echt dankbar, wenn Ihr euch mal die includes und die Makefile anschauen könntet :D (ich verwende übrigens WinAVR, Programmers' Notepad und den Makefile-Editor) mfg
Ich habs jetzt mit ner anderen Makefile und ner neuen USB-Verbindung so weit geschafft, dass der Code compiliert und der mega32 vom Laptop als Unbekanntes Gerät (VendorID=0x00 & DeviceID=0x00) "erkannt" wird. Ich werde heut zum dritten Mal die Verdrahtung und Schaltung überprüfen und nochmal den Code durchgehen. Hat noch jemand ne bessere Idee? mfg
Michael Stoffels schrieb: > als Unbekanntes Gerät (VendorID=0x00 & DeviceID=0x00) "erkannt" wird Datenleitungen vertauscht oder PullUp von Data- vergessen?
Ich hab dort den Fehler gemacht, dass ich keine PullUps sondern PullDowns gemacht habe, so wie nicht 1M\Omega an die eine Datenleitung...
Also D+ und D- sollten stimmen, die hab ich schon mehrfach kontrolliert. Ich hab mich beim USB-Anschluss an den angehängten Schaltplan gehalten. Nur dass ich D+ an PB0 und D- an PB1 gelegt hab. ... #define USB_CFG_IOPORTNAME B #define USB_CFG_DMINUS_BIT 1 #define USB_CFG_DPLUS_BIT 0 #define USB_CFG_CLOCK_KHZ 12000 ... Die Fuses hab ich auf low:0xff & hight:0xd9 gesetzt. An XTAL1 und XTAL2 hab ich nen 12MHZ Quarz gehängt. mfg
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.