Fiexed AT90USB162 compatibility.(different number of endpoint)

daktil_thumb_popravljen
tmk 2012-03-04 01:12:35 +09:00
parent e157aa7f91
commit 446f87f9e8
2 changed files with 9 additions and 3 deletions

View File

@ -785,7 +785,7 @@ ISR(USB_COM_vect)
usb_configuration = wValue; usb_configuration = wValue;
usb_send_in(); usb_send_in();
cfg = endpoint_config_table; cfg = endpoint_config_table;
for (i=1; i<=6; i++) { for (i=1; i<=MAX_ENDPOINT; i++) {
UENUM = i; UENUM = i;
en = pgm_read_byte(cfg++); en = pgm_read_byte(cfg++);
if (en) { if (en) {
@ -796,7 +796,7 @@ ISR(USB_COM_vect)
UECONX = 0; UECONX = 0;
} }
} }
UERST = 0x7E; UERST = UERST_MASK;
UERST = 0; UERST = 0;
return; return;
} }

View File

@ -53,7 +53,13 @@ void usb_remote_wakeup(void);
((s) == 16 ? 0x10 : \ ((s) == 16 ? 0x10 : \
0x00))) 0x00)))
#define MAX_ENDPOINT 4 #if defined (__AVR_AT90USB162__) || defined (__AVR_AT90USB82__)
# define MAX_ENDPOINT 4
# define UERST_MASK 0x1E
#else
# define MAX_ENDPOINT 6
# define UERST_MASK 0x7E
#endif
#define LSB(n) (n & 255) #define LSB(n) (n & 255)
#define MSB(n) ((n >> 8) & 255) #define MSB(n) ((n >> 8) & 255)