Forráskód Böngészése

Use serial_uart.c instead of x68k.c now

tmk 12 éve
szülő
commit
f45f4193f2

+ 1 - 2
converter/x68k_usb/Makefile

@@ -16,8 +16,7 @@ TARGET_DIR = .
 SRC =	keymap.c \
 	matrix.c \
 	led.c \
-	protocol/x68k.c
-#	protocol/serial_uart.c
+	protocol/serial_uart.c
 
 CONFIG_H = config_pjrc.h
 

+ 4 - 14
converter/x68k_usb/config_pjrc.h

@@ -34,7 +34,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 /* key combination for command */
 #define IS_COMMAND() ( \
     keyboard_report->mods == (MOD_BIT(KC_LALT) | MOD_BIT(KC_RALT)) || \
-    keyboard_report->mods == (MOD_BIT(KC_LCTRL) | MOD_BIT(KC_RSHIFT)) \
+    keyboard_report->mods == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \
+    keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) \
 )
 
 /* legacy keymap support */
@@ -45,17 +46,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
  *     asynchronous, 2400baud, 8-data bit, non parity, 1-stop bit, no flow control
  */
 #ifdef __AVR_ATmega32U4__
-#   define KBD_RX_VECT        USART1_RX_vect
-#   define KBD_RX_DATA        UDR1
-#   define KBD_RX_BAUD        2400
-#   define KBD_RX_UBBR        ((F_CPU/(16UL*KBD_RX_BAUD))-1)
-#   define KBD_RX_INIT()      do { \
-        UBRR1L = (uint8_t) KBD_RX_UBBR; \
-        UBRR1H = (uint8_t) (KBD_RX_UBBR>>8); \
-        UCSR1B |= (1<<RXCIE1) | (1<<RXEN1) | (1<<TXEN1); \
-    } while(0)
-
-
     #define SERIAL_UART_BAUD       2400
     #define SERIAL_UART_DATA       UDR1
     #define SERIAL_UART_UBRR       ((F_CPU/(16UL*SERIAL_UART_BAUD))-1)
@@ -66,8 +56,8 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
         UBRR1H = (uint8_t) (SERIAL_UART_UBRR>>8);  /* baud rate */ \
         UCSR1B = (1<<RXCIE1) | (1<<RXEN1) | /* RX: interrupt, RX: enable */ \
                  (1<<TXEN1);                /* TX: enable */ \
-        UCSR1C = (1<<UPM11) | (1<<UPM10) | /* parity: none(00), even(01), odd(11) */ \
-                 (0<<UCSZ12) | (1<<UCSZ11) | (1<<UCSZ10); /* 8bit-data(011) */ \
+        UCSR1C = (0<<UPM11) | (0<<UPM10) | /* parity: none(00), even(01), odd(11) */ \
+                 (0<<UCSZ12) | (1<<UCSZ11) | (1<<UCSZ10); /* data-8bit(011) */ \
         sei(); \
     } while(0)
 #else

+ 1 - 4
converter/x68k_usb/led.c

@@ -19,7 +19,6 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include "serial.h"
 #include "led.h"
 #include "debug.h"
-#include "x68k.h"
 
 
 void led_set(uint8_t usb_led)
@@ -35,12 +34,10 @@ void led_set(uint8_t usb_led)
      * bit 0   かな
      */
     uint8_t led = 0xFF;
-    xprintf("usb_led: %02X\n", usb_led);
     if (usb_led&(1<<USB_LED_NUM_LOCK))      led &= ~(1<<2);
     if (usb_led&(1<<USB_LED_CAPS_LOCK))     led &= ~(1<<3);
     if (usb_led&(1<<USB_LED_SCROLL_LOCK))   led &= ~(1<<1);
     if (usb_led&(1<<USB_LED_COMPOSE))       led &= ~(1<<4);
     if (usb_led&(1<<USB_LED_KANA))          led &= ~(1<<0);
-    xprintf("led: %02X\n", led);
-    x68k_send(led);
+    serial_send(led);
 }

+ 7 - 6
converter/x68k_usb/matrix.c

@@ -21,8 +21,9 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #include <util/delay.h>
 #include "print.h"
 #include "util.h"
-#include "x68k.h"
+#include "serial.h"
 #include "matrix.h"
+#include "debug.h"
 
 
 /*
@@ -63,7 +64,7 @@ uint8_t matrix_cols(void)
 
 void matrix_init(void)
 {
-    x68k_init();
+    serial_init();
 
     // initialize matrix state: all keys off
     for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
@@ -75,13 +76,13 @@ uint8_t matrix_scan(void)
 {
     is_modified = false;
 
-    uint8_t code;
-    code = x68k_recv();
-    if (code == 0) {
+    uint16_t code;
+    code = serial_recv2();
+    if (code == -1) {
         return 0;
     }
 
-    phex(code); print(" ");
+    dprintf("%02X\n", code);
     if (code&0x80) {
         // break code
         if (matrix_is_on(ROW(code), COL(code))) {

+ 0 - 81
protocol/x68k.c

@@ -1,81 +0,0 @@
-/*
-Copyright 2012 Jun WAKO <wakojun@gmail.com>
-
-This software is licensed with a Modified BSD License.
-All of this is supposed to be Free Software, Open Source, DFSG-free,
-GPL-compatible, and OK to use in both free and proprietary applications.
-Additions and corrections to this file are welcome.
-
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in
-  the documentation and/or other materials provided with the
-  distribution.
-
-* Neither the name of the copyright holders nor the names of
-  contributors may be used to endorse or promote products derived
-  from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#include <stdbool.h>
-#include <avr/io.h>
-#include <avr/interrupt.h>
-#include "x68k.h"
-
-
-void x68k_init(void)
-{
-    KBD_RX_INIT();
-}
-
-// RX ring buffer
-#define RBUF_SIZE   8
-static uint8_t rbuf[RBUF_SIZE];
-static uint8_t rbuf_head = 0;
-static uint8_t rbuf_tail = 0;
-
-uint8_t x68k_recv(void)
-{
-    uint8_t data = 0;
-    if (rbuf_head == rbuf_tail) {
-        return 0;
-    }
-
-    data = rbuf[rbuf_tail];
-    rbuf_tail = (rbuf_tail + 1) % RBUF_SIZE;
-    return data;
-}
-
-void x68k_send(uint8_t d)
-{
-    while (!(UCSR1A&(1<<UDRE1)));
-    UDR1 = d;
-}
-
-// USART RX complete interrupt
-ISR(KBD_RX_VECT)
-{
-    uint8_t next = (rbuf_head + 1) % RBUF_SIZE;
-    if (next != rbuf_tail) {
-        rbuf[rbuf_head] = KBD_RX_DATA;
-        rbuf_head = next;
-    }
-}

+ 0 - 48
protocol/x68k.h

@@ -1,48 +0,0 @@
-/*
-Copyright 2012 Jun WAKO <wakojun@gmail.com>
-
-This software is licensed with a Modified BSD License.
-All of this is supposed to be Free Software, Open Source, DFSG-free,
-GPL-compatible, and OK to use in both free and proprietary applications.
-Additions and corrections to this file are welcome.
-
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-* Redistributions of source code must retain the above copyright
-  notice, this list of conditions and the following disclaimer.
-
-* Redistributions in binary form must reproduce the above copyright
-  notice, this list of conditions and the following disclaimer in
-  the documentation and/or other materials provided with the
-  distribution.
-
-* Neither the name of the copyright holders nor the names of
-  contributors may be used to endorse or promote products derived
-  from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
-*/
-
-#ifndef X68K_H
-#define X68K_H
-
-/* host role */
-void x68k_init(void);
-uint8_t x68k_recv(void);
-void x68k_send(uint8_t d);
-
-/* device role */
-
-#endif