Migrate serial_uart usages to UART driver (#15479)
* Migrate Thermal Printer feature to UART driver * Migrate 40percentclub UT47 to UART driver * Migrate Centromere to UART driver * Migrate Chimera Ergo to UART driver * Migrate Chimera Let's Split to UART driver * Migrate Chimera Ortho to UART driver * Migrate Chimera Ortho Plus to UART driver * Migrate Comet46 to UART driver * Migrate Palm USB converter to UART driver * Migrate Sun USB converter to UART driver * Migrate Dichotomy to UART driver * Migrate Honeycomb to UART driver * Migrate Mitosis to UART driver * Migrate Redox W to UART driver * Migrate Uni660 to UART driver * Migrate Telophase to UART driver
This commit is contained in:
@@ -60,58 +60,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
get_mods() == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \
|
||||
get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
|
||||
/* Serial(USART) configuration
|
||||
* asynchronous, negative logic, 9600baud, no flow control
|
||||
* 1-start bit, 8-data bit, non parity, 1-stop bit
|
||||
*/
|
||||
#define SERIAL_SOFT_BAUD 9600
|
||||
#define SERIAL_SOFT_PARITY_NONE
|
||||
#define SERIAL_SOFT_BIT_ORDER_LSB
|
||||
#if (HANDSPRING == 0)
|
||||
#define SERIAL_SOFT_LOGIC_NEGATIVE //RS232 logic
|
||||
#endif
|
||||
/* RXD Port */
|
||||
#define SERIAL_SOFT_RXD_ENABLE
|
||||
|
||||
// we are using Pro micro pin 3 / D0 as serial
|
||||
#define SERIAL_SOFT_RXD_DDR DDRD
|
||||
#define SERIAL_SOFT_RXD_PORT PORTD
|
||||
#define SERIAL_SOFT_RXD_PIN PIND
|
||||
#define SERIAL_SOFT_RXD_BIT 0
|
||||
#define SERIAL_SOFT_RXD_VECT INT0_vect
|
||||
|
||||
/* RXD Interupt */
|
||||
#define SERIAL_SOFT_RXD_INIT() do { \
|
||||
/* pin configuration: input with pull-up */ \
|
||||
SERIAL_SOFT_RXD_DDR &= ~(1<<SERIAL_SOFT_RXD_BIT); \
|
||||
SERIAL_SOFT_RXD_PORT |= (1<<SERIAL_SOFT_RXD_BIT); \
|
||||
/* enable interrupt: INT0(rising edge) */ \
|
||||
EICRA |= ((1<<ISC01)|(1<<ISC00)); \
|
||||
EIMSK |= (1<<INT0); \
|
||||
sei(); \
|
||||
} while (0)
|
||||
#define SERIAL_SOFT_RXD_INT_ENTER()
|
||||
#define SERIAL_SOFT_RXD_INT_EXIT() do { \
|
||||
/* clear interrupt flag */ \
|
||||
EIFR = (1<<INTF0); \
|
||||
} while (0)
|
||||
#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)
|
||||
|
||||
|
||||
|
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "protocol/serial.h"
|
||||
#include "uart.h"
|
||||
#include "timer.h"
|
||||
|
||||
|
||||
@@ -164,7 +164,7 @@ uint8_t rts_reset(void) {
|
||||
uint8_t get_serial_byte(void) {
|
||||
static uint8_t code;
|
||||
while(1) {
|
||||
code = serial_recv();
|
||||
code = uart_read();
|
||||
if (code) {
|
||||
debug_hex(code); debug(" ");
|
||||
return code;
|
||||
@@ -240,7 +240,7 @@ void matrix_init(void)
|
||||
debug_enable = true;
|
||||
//debug_matrix =true;
|
||||
|
||||
serial_init(); // arguments all #defined
|
||||
uart_init(9600); // arguments all #defined
|
||||
|
||||
#if (HANDSPRING == 0)
|
||||
pins_init(); // set all inputs and outputs.
|
||||
@@ -290,7 +290,7 @@ void matrix_init(void)
|
||||
uint8_t matrix_scan(void)
|
||||
{
|
||||
uint8_t code;
|
||||
code = serial_recv();
|
||||
code = uart_read();
|
||||
if (!code) {
|
||||
/*
|
||||
disconnect_counter ++;
|
||||
|
@@ -1,7 +0,0 @@
|
||||
ifdef HARDWARE_SERIAL
|
||||
# Untested with palm_usb
|
||||
SRC += protocol/serial_uart.c
|
||||
OPT_DEFS += -DHARDWARE_SERIAL
|
||||
else
|
||||
SRC += protocol/serial_soft.c
|
||||
endif
|
@@ -20,5 +20,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
CUSTOM_MATRIX = yes
|
||||
|
||||
SRC += matrix.c
|
||||
QUANTUM_LIB_SRC += uart.c
|
||||
|
||||
DEFAULT_FOLDER = converter/palm_usb/stowaway
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "protocol/serial.h"
|
||||
#include "uart.h"
|
||||
|
||||
bool sun_bell = false;
|
||||
bool sun_click = false;
|
||||
@@ -20,41 +20,41 @@ bool command_extra(uint8_t code)
|
||||
return false;
|
||||
case KC_DEL:
|
||||
print("Reset\n");
|
||||
serial_send(0x01);
|
||||
uart_write(0x01);
|
||||
break;
|
||||
case KC_HOME:
|
||||
sun_bell = !sun_bell;
|
||||
if (sun_bell) {
|
||||
print("Bell On\n");
|
||||
serial_send(0x02);
|
||||
uart_write(0x02);
|
||||
} else {
|
||||
print("Bell Off\n");
|
||||
serial_send(0x03);
|
||||
uart_write(0x03);
|
||||
}
|
||||
break;
|
||||
case KC_END:
|
||||
sun_click = !sun_click;
|
||||
if (sun_click) {
|
||||
print("Click On\n");
|
||||
serial_send(0x0A);
|
||||
uart_write(0x0A);
|
||||
} else {
|
||||
print("Click Off\n");
|
||||
serial_send(0x0B);
|
||||
uart_write(0x0B);
|
||||
}
|
||||
break;
|
||||
case KC_PGUP:
|
||||
print("LED all on\n");
|
||||
serial_send(0x0E);
|
||||
serial_send(0xFF);
|
||||
uart_write(0x0E);
|
||||
uart_write(0xFF);
|
||||
break;
|
||||
case KC_PGDOWN:
|
||||
print("LED all off\n");
|
||||
serial_send(0x0E);
|
||||
serial_send(0x00);
|
||||
uart_write(0x0E);
|
||||
uart_write(0x00);
|
||||
break;
|
||||
case KC_INSERT:
|
||||
print("layout\n");
|
||||
serial_send(0x0F);
|
||||
uart_write(0x0F);
|
||||
break;
|
||||
default:
|
||||
xprintf("Unknown extra command: %02X\n", code);
|
||||
|
@@ -33,50 +33,3 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
get_mods() == (MOD_BIT(KC_LGUI) | MOD_BIT(KC_RGUI)) || \
|
||||
get_mods() == (MOD_BIT(KC_LSHIFT) | MOD_BIT(KC_RSHIFT)) \
|
||||
)
|
||||
|
||||
|
||||
/* Serial(USART) configuration
|
||||
* asynchronous, negative logic, 1200baud, no flow control
|
||||
* 1-start bit, 8-data bit, non parity, 1-stop bit
|
||||
*/
|
||||
#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_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_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)
|
||||
|
@@ -16,7 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "protocol/serial.h"
|
||||
#include "uart.h"
|
||||
|
||||
void led_set(uint8_t usb_led)
|
||||
{
|
||||
@@ -27,6 +27,6 @@ void led_set(uint8_t usb_led)
|
||||
if (usb_led & (1<<USB_LED_CAPS_LOCK)) sun_led |= (1<<3);
|
||||
xprintf("LED: %02X\n", usb_led);
|
||||
|
||||
serial_send(0x0E);
|
||||
serial_send(sun_led);
|
||||
uart_write(0x0E);
|
||||
uart_write(sun_led);
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include QMK_KEYBOARD_H
|
||||
#include "protocol/serial.h"
|
||||
#include "uart.h"
|
||||
|
||||
/*
|
||||
* Matrix Array usage:
|
||||
@@ -74,7 +74,7 @@ void matrix_init(void)
|
||||
/* PORTD |= (1<<6); */
|
||||
debug_enable = true;
|
||||
|
||||
serial_init();
|
||||
uart_init(1200);
|
||||
|
||||
// initialize matrix state: all keys off
|
||||
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
|
||||
@@ -84,12 +84,12 @@ void matrix_init(void)
|
||||
/* print("Reseting "); */
|
||||
/* while (1) { */
|
||||
/* print("."); */
|
||||
/* while (serial_recv()); */
|
||||
/* serial_send(0x01); */
|
||||
/* while (uart_read()); */
|
||||
/* uart_write(0x01); */
|
||||
/* _delay_ms(500); */
|
||||
/* if (serial_recv() == 0xFF) { */
|
||||
/* if (uart_read() == 0xFF) { */
|
||||
/* _delay_ms(500); */
|
||||
/* if (serial_recv() == 0x04) */
|
||||
/* if (uart_read() == 0x04) */
|
||||
/* break; */
|
||||
/* } */
|
||||
/* } */
|
||||
@@ -104,7 +104,7 @@ void matrix_init(void)
|
||||
uint8_t matrix_scan(void)
|
||||
{
|
||||
uint8_t code;
|
||||
code = serial_recv();
|
||||
code = uart_read();
|
||||
if (!code) return 0;
|
||||
|
||||
debug_hex(code); debug(" ");
|
||||
@@ -113,7 +113,7 @@ uint8_t matrix_scan(void)
|
||||
case 0xFF: // reset success: FF 04
|
||||
print("reset: ");
|
||||
_delay_ms(500);
|
||||
code = serial_recv();
|
||||
code = uart_read();
|
||||
xprintf("%02X\n", code);
|
||||
if (code == 0x04) {
|
||||
// LED status
|
||||
@@ -123,12 +123,12 @@ uint8_t matrix_scan(void)
|
||||
case 0xFE: // layout: FE <layout>
|
||||
print("layout: ");
|
||||
_delay_ms(500);
|
||||
xprintf("%02X\n", serial_recv());
|
||||
xprintf("%02X\n", uart_read());
|
||||
return 0;
|
||||
case 0x7E: // reset fail: 7E 01
|
||||
print("reset fail: ");
|
||||
_delay_ms(500);
|
||||
xprintf("%02X\n", serial_recv());
|
||||
xprintf("%02X\n", uart_read());
|
||||
return 0;
|
||||
case 0x7F:
|
||||
// all keys up
|
||||
|
@@ -1,6 +0,0 @@
|
||||
ifdef HARDWARE_SERIAL
|
||||
SRC += protocol/serial_uart.c
|
||||
OPT_DEFS += -DHARDWARE_SERIAL
|
||||
else
|
||||
SRC += protocol/serial_soft.c
|
||||
endif
|
@@ -20,5 +20,6 @@ RGBLIGHT_ENABLE = no # Enable WS2812 RGB underlight.
|
||||
CUSTOM_MATRIX = yes
|
||||
|
||||
SRC += matrix.c led.c
|
||||
QUANTUM_LIB_SRC += uart.c
|
||||
|
||||
DEFAULT_FOLDER = converter/sun_usb/type5
|
||||
|
Reference in New Issue
Block a user