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
Gast
#2963701
Michael Stoffels schrieb: > als Unbekanntes Gerät (VendorID=0x00 & DeviceID=0x00) "erkannt" wird Datenleitungen vertauscht oder PullUp von Data- vergessen?
Gast
#2963760
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
