ps2_usb: Fix for VUSB configuration
authortmk <hasu@tmk-kbd.com>
Fri, 18 Mar 2016 23:08:49 +0000 (08:08 +0900)
committertmk <hasu@tmk-kbd.com>
Fri, 18 Mar 2016 23:08:49 +0000 (08:08 +0900)
converter/ps2_usb/Makefile.vusb
converter/ps2_usb/config.h
tmk_core/protocol/vusb.mk
tmk_core/protocol/vusb/main.c

index d9fa12bcda6791e581c04af3818399d54cd37331..1f2c209a6c1b982e54e39f7b132723fa1a56627f 100644 (file)
@@ -36,7 +36,8 @@ OPT_DEFS += -DDEBUG_LEVEL=0
 #MCU = atmega32u4       # Teensy 2.0
 #MCU = at90usb646       # Teensy++ 1.0
 #MCU = at90usb1286      # Teensy++ 2.0
-MCU = atmega168
+#MCU = atmega168
+MCU = atmega328p
 
 
 # Processor frequency.
@@ -44,7 +45,7 @@ MCU = atmega168
 #   so your program will run at the correct speed.  You should also set this
 #   variable to same clock speed.  The _delay_ms() macro uses this, and many
 #   examples use this variable to calculate timings.  Do not add a "UL" here.
-F_CPU = 20000000
+F_CPU = 12000000
 
 
 # Build Options
index c0a4fab13b26ef3072ffd7249cfc372033c6be5f..35eb414ff5eee59c1692a2d416068293bae19cf3 100644 (file)
@@ -61,6 +61,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * PS/2 Pin interrupt
  */
 #ifdef PS2_USE_INT
+#if defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__)
 /* uses INT1 for clock line(ATMega32U4) */
 #define PS2_CLOCK_PORT  PORTD
 #define PS2_CLOCK_PIN   PIND
@@ -81,6 +82,28 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
     EIMSK &= ~(1<<INT1);        \
 } while (0)
 #define PS2_INT_VECT    INT1_vect
+
+#elif defined(__AVR_ATmega168__) || defined(__AVR_ATmega168P__) || defined(__AVR_ATmega328P__)
+/* uses PCINT17(PD1) for clock line. this doesn't work with VUSB */
+#define PS2_CLOCK_PORT  PORTD
+#define PS2_CLOCK_PIN   PIND
+#define PS2_CLOCK_DDR   DDRD
+#define PS2_CLOCK_BIT   1
+#define PS2_DATA_PORT   PORTD
+#define PS2_DATA_PIN    PIND
+#define PS2_DATA_DDR    DDRD
+#define PS2_DATA_BIT    0
+#define PS2_INT_INIT()  do {    \
+    PCICR  |= (1<<PCIE2);       \
+} while (0)
+#define PS2_INT_ON()  do {      \
+    PCMSK2 |= (1<<PCINT17);     \
+} while (0)
+#define PS2_INT_OFF() do {      \
+    PCMSK2 &= ~(1<<PCINT17);    \
+} while (0)
+#define PS2_INT_VECT    PCINT2_vect
+#endif
 #endif
 
 /*
index 3cba3f71a32548e891d73239210a3b2f21042bf1..d541dd0fad9b0a8aff6f6dee03dbf863fe6bc448 100644 (file)
@@ -10,6 +10,7 @@ SRC +=        $(VUSB_DIR)/main.c \
 
 
 ifdef NO_UART
+OPT_DEFS += -DNO_UART
 SRC += $(COMMON_DIR)/sendchar_null.c
 else
 SRC += $(COMMON_DIR)/sendchar_uart.c \
index 8e4a266e9b60d63c423b0a336401e78fd33f93dd..0d809536d3514471cfd1fa3e5e88d95ce3c3c260 100644 (file)
@@ -49,7 +49,7 @@ int main(void)
 #endif
 
     CLKPR = 0x80, CLKPR = 0;
-#ifndef PS2_USE_USART
+#ifndef NO_UART
     uart_init(UART_BAUD_RATE);
 #endif
 
Imprint / Impressum