Registered Member #3900
Joined: Thu May 19 2011, 08:28PM
Location:
Posts: 600
|
Placeholder, i'll post the question tomorrow. If anyone can see what's wrong right now it'd be awesome. The out-of-the-box vusb code doesn't seem to work, and i cant figure out why...
edit:
so. basicaly, i have this "working vusb code from here: right from the beginning, you have to include the usbdrv.c file missing from the code and paste the authors Makefile into the folder. but when you do, you get another error pops up. going through the usbdrv.c source finds: [blockquote]if(len <= 8){ /* valid data packet */
usbCrc16Append(&usbTxBuf[1], len);
len += 4; /* length including sync byte */
if(len < 12) /* a partial package identifies end of message */
usbMsgLen = USB_NO_MSG;
}else{
len = USBPID_STALL; /* stall the endpoint */
usbMsgLen = USB_NO_MSG;
} [/blockquote]
where usb usbcrcappend() function is undefined. I dug through the headers and includes for usbdrv.c as well, and found no declarations. if anyone has used vusb with success, can you let me know how you did it?
Code: [blockquote]#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/wdt.h>
#include <avr/pgmspace.h>
#include "usbdrv.h"
#include "usbdrv.c"
#define F_CPU 16000000UL
#include <util/delay.h>
USB_PUBLIC uchar usbFunctionSetup(uchar data[8]) {
return 0; // do nothing for now
}
int main(void) {
uchar i;
wdt_enable(WDTO_1S); // enable 1s watchdog timer
usbInit();
usbDeviceDisconnect(); // enforce re-enumeration
for(i = 0; i<250; i++) { // wait 500 ms
wdt_reset(); // keep the watchdog happy
_delay_ms(2);
}
usbDeviceConnect();
sei(); // Enable interrupts after re-enumeration
while(1) {
wdt_reset(); // keep the watchdog happy
usbPoll();
}
return 0;
} [/blockquote]
Error: [blockquote]> "make.exe" all
-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3
Copyright (C) 2008 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiling C: main.c
avr-gcc -c -mmcu=attiny4313 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o
Linking: main.elf
avr-gcc -mmcu=attiny4313 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref -lm
main.o: In function `usbBuildTxBlock':
C:\Users\Ben\Desktop\avr\USB/usbdrv.c:537: undefined reference to `usbCrc16Append'
make.exe: *** [main.elf] Error 1
> Process Exit Code: 2
> Time Taken: 00:02 [/blockquote]
|