summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortmk2012-03-04 01:12:35 +0900
committertmk2012-03-04 01:23:44 +0900
commit446f87f9e82e57fdc255cab3051a4b598fa4da75 (patch)
treeb0aa46d9dfad0b83d1386e7d2c8f686df08d8d49
parente157aa7f91814864a75ecdb84188a443d63acc86 (diff)
Fiexed AT90USB162 compatibility.(different number of endpoint)
-rw-r--r--pjrc/usb.c4
-rw-r--r--pjrc/usb.h8
2 files changed, 9 insertions, 3 deletions
diff --git a/pjrc/usb.c b/pjrc/usb.c
index 20afc1b88..2b69b6a7f 100644
--- a/pjrc/usb.c
+++ b/pjrc/usb.c
@@ -785,7 +785,7 @@ ISR(USB_COM_vect)
usb_configuration = wValue;
usb_send_in();
cfg = endpoint_config_table;
- for (i=1; i<=6; i++) {
+ for (i=1; i<=MAX_ENDPOINT; i++) {
UENUM = i;
en = pgm_read_byte(cfg++);
if (en) {
@@ -796,7 +796,7 @@ ISR(USB_COM_vect)
UECONX = 0;
}
}
- UERST = 0x7E;
+ UERST = UERST_MASK;
UERST = 0;
return;
}
diff --git a/pjrc/usb.h b/pjrc/usb.h
index 82e18f176..0eb58fc39 100644
--- a/pjrc/usb.h
+++ b/pjrc/usb.h
@@ -53,7 +53,13 @@ void usb_remote_wakeup(void);
((s) == 16 ? 0x10 : \
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 MSB(n) ((n >> 8) & 255)