]> git.donarmstrong.com Git - tmk_firmware.git/blobdiff - converter/sun_usb/config.h
Fix legacy keymap support
[tmk_firmware.git] / converter / sun_usb / config.h
index 66961d9330896dc34cdefb74dab905c28950c6f0..32303cd32b0305bc292b8d8f80518e21ed0b9ef9 100644 (file)
@@ -25,12 +25,10 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #define PRODUCT         Sun keyboard converter
 #define DESCRIPTION     converts Sun keyboard protocol into USB
 
-
 /* matrix size */
 #define MATRIX_ROWS 16
 #define MATRIX_COLS 8
 
-
 /* key combination for command */
 #define IS_COMMAND() ( \
     keyboard_report->mods == (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) || \
@@ -38,30 +36,63 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
     keyboard_report->mods == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
 )
 
+/* legacy keymap support */
+#define USE_LEGACY_KEYMAP
+
+/* Boot Section Size in *BYTEs*
+ *   Teensy   halfKay    512
+ *   Teensy++ halfKay    1024
+ *   Atmel DFU loader    4096
+ *   LUFA bootloader     4096
+ *   USBaspLoader        2048
+ */
+#define BOOTLOADER_SIZE 4096
+
 
 /* Serial(USART) configuration
  *     asynchronous, negative logic, 1200baud, no flow control
  *     1-start bit, 8-data bit, non parity, 1-stop bit
  */
-#define SERIAL_NEGATIVE_LOGIC
-#define SERIAL_BAUD 1200
-#define SERIAL_RXD_DDR  DDRD
-#define SERIAL_RXD_PORT PORTD
-#define SERIAL_RXD_PIN  PIND
-#define SERIAL_RXD_BIT  2
-#define SERIAL_RXD_VECT INT2_vect
-#define SERIAL_RXD_INIT()  do { \
+#define SERIAL_SOFT_BAUD            1200
+#define SERIAL_SOFT_PARITY_NONE
+#define SERIAL_SOFT_BIT_ORDER_LSB
+#define SERIAL_SOFT_LOGIC_NEGATIVE
+/* RXD Port */
+#define SERIAL_SOFT_RXD_ENABLE
+#define SERIAL_SOFT_RXD_DDR         DDRD
+#define SERIAL_SOFT_RXD_PORT        PORTD
+#define SERIAL_SOFT_RXD_PIN         PIND
+#define SERIAL_SOFT_RXD_BIT         2
+#define SERIAL_SOFT_RXD_VECT        INT2_vect
+/* RXD Interupt */
+#define SERIAL_SOFT_RXD_INIT()      do { \
     /* pin configuration: input with pull-up */ \
-    SERIAL_RXD_DDR &= ~(1<<SERIAL_RXD_BIT);     \
-    SERIAL_RXD_PORT |= (1<<SERIAL_RXD_BIT);     \
-    /* enable interrupt: INT2(rising edge) */   \
-    EICRA |= ((1<<ISC21)|(1<<ISC20));           \
-    EIMSK |= (1<<INT2);                         \
+    SERIAL_SOFT_RXD_DDR &= ~(1<<SERIAL_SOFT_RXD_BIT); \
+    SERIAL_SOFT_RXD_PORT |= (1<<SERIAL_SOFT_RXD_BIT); \
+    /* enable interrupt: INT2(rising edge) */ \
+    EICRA |= ((1<<ISC21)|(1<<ISC20)); \
+    EIMSK |= (1<<INT2); \
+    sei(); \
+} while (0)
+#define SERIAL_SOFT_RXD_INT_ENTER()
+#define SERIAL_SOFT_RXD_INT_EXIT()  do { \
+    /* clear interrupt  flag */ \
+    EIFR = (1<<INTF2); \
 } while (0)
-#define SERIAL_RXD_INT_ENTER()
-#define SERIAL_RXD_INT_EXIT() do {  \
-    /* clear interrupt  flag */     \
-    EIFR = (1<<INTF2);              \
+#define SERIAL_SOFT_RXD_READ()      (SERIAL_SOFT_RXD_PIN&(1<<SERIAL_SOFT_RXD_BIT))
+/* TXD Port */
+#define SERIAL_SOFT_TXD_ENABLE
+#define SERIAL_SOFT_TXD_DDR         DDRD
+#define SERIAL_SOFT_TXD_PORT        PORTD
+#define SERIAL_SOFT_TXD_PIN         PIND
+#define SERIAL_SOFT_TXD_BIT         3
+#define SERIAL_SOFT_TXD_HI()        do { SERIAL_SOFT_TXD_PORT |=  (1<<SERIAL_SOFT_TXD_BIT); } while (0)
+#define SERIAL_SOFT_TXD_LO()        do { SERIAL_SOFT_TXD_PORT &= ~(1<<SERIAL_SOFT_TXD_BIT); } while (0)
+#define SERIAL_SOFT_TXD_INIT()      do { \
+    /* pin configuration: output */ \
+    SERIAL_SOFT_TXD_DDR |= (1<<SERIAL_SOFT_TXD_BIT); \
+    /* idle */ \
+    SERIAL_SOFT_TXD_ON(); \
 } while (0)
 
 #endif