Browse Source

Add compile error if too many endpoints are defined for the ATmega32U4.

Joe Wasson 7 năm trước cách đây
mục cha
commit
bdc0880ca5

+ 1 - 1
docs/stenography.md

@@ -30,7 +30,7 @@ GeminiPR encodes 42 keys into a 6-byte packet. While TX Bolt contains everything
 
 
 ## Configuring QMK for Steno
 ## Configuring QMK for Steno
 
 
-Firstly, enable steno in your keymap's Makefile. You should also diable mousekeys to prevent conflicts.
+Firstly, enable steno in your keymap's Makefile. You may also need disable mousekeys, extra keys, or another USB endpoint to prevent conflicts. The builtin USB stack for some processors only supports a certain number of USB endpoints and the virtual serial port needed for steno fills 3 of them.
 
 
 ```Makefile
 ```Makefile
 STENO_ENABLE = yes
 STENO_ENABLE = yes

+ 2 - 1
tmk_core/protocol/lufa/descriptor.h

@@ -238,7 +238,8 @@ typedef struct
 #   define CDC_OUT_EPNUM	MIDI_STREAM_OUT_EPNUM
 #   define CDC_OUT_EPNUM	MIDI_STREAM_OUT_EPNUM
 #endif
 #endif
 
 
-#if defined(__AVR_ATmega32U2__) && CDC_OUT_EPNUM > 4
+#if (defined(__AVR_ATmega32U2__) && CDC_OUT_EPNUM > 4) || \
+    (defined(__AVR_ATmega32U4__) && CDC_OUT_EPNUM > 6)
 # error "Endpoints are not available enough to support all functions. Remove some in Makefile.(MOUSEKEY, EXTRAKEY, CONSOLE, NKRO, MIDI, SERIAL)"
 # error "Endpoints are not available enough to support all functions. Remove some in Makefile.(MOUSEKEY, EXTRAKEY, CONSOLE, NKRO, MIDI, SERIAL)"
 #endif
 #endif