From 563d0ea1c144983985e61ca0216f10ad93f515c8 Mon Sep 17 00:00:00 2001 From: mtei <2170248+mtei@users.noreply.github.com> Date: Mon, 25 Jun 2018 13:35:53 +0900 Subject: [PATCH] add SELECT_SERIAL_SPEED --- keyboards/helix/serial.c | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/keyboards/helix/serial.c b/keyboards/helix/serial.c index 339da31908..a1424e22fe 100644 --- a/keyboards/helix/serial.c +++ b/keyboards/helix/serial.c @@ -16,11 +16,37 @@ #define _delay_sub_us(x) __builtin_avr_delay_cycles(x) -// Serial pulse period in microseconds. Its probably a bad idea to lower this -// value. -#define SERIAL_DELAY 6 // micro sec -#define READ_WRITE_START_ADJUST 20 // cycles -#define READ_WRITE_WIDTH_ADJUST 10 // cycles +// Serial pulse period in microseconds. +#define SELECT_SERIAL_SPEED 0 +// !!! 以下の3つ組の定義、、通信速度の「高速」、「中速」、「低速」、「超低速」の4パターンで、実測して合わせこみ +// 選択できるようにしておく。 +#if SELECT_SERIAL_SPEED == 0 + // High speed + #define SERIAL_DELAY 6 // micro sec + #define READ_WRITE_START_ADJUST 20 // cycles + #define READ_WRITE_WIDTH_ADJUST 10 // cycles +#elif SELECT_SERIAL_SPEED == 1 + // Middle speed + #define SERIAL_DELAY 12 // micro sec + #define READ_WRITE_START_ADJUST 20 // cycles + #define READ_WRITE_WIDTH_ADJUST 10 // cycles + #error Serial Speed Middle not yet +#elif SELECT_SERIAL_SPEED == 2 + // Low speed + #define SERIAL_DELAY 24 // micro sec + #define READ_WRITE_START_ADJUST 20 // cycles + #define READ_WRITE_WIDTH_ADJUST 10 // cycles + #error Serial Speed Low not yet +#elif SELECT_SERIAL_SPEED == 3 + // Very Low speed + #define SERIAL_DELAY 50 // micro sec + #define READ_WRITE_START_ADJUST 20 // cycles + #define READ_WRITE_WIDTH_ADJUST 10 // cycles + #error Serial Speed Low not yet +#else +#error Illegal Serial Speed +#endif + #define SERIAL_DELAY_HALF1 (SERIAL_DELAY/2) #define SERIAL_DELAY_HALF2 (SERIAL_DELAY - SERIAL_DELAY/2) @@ -194,7 +220,7 @@ void serial_write_byte(uint8_t data) { b >>= 1; debug_recvsample(); serial_delay(); - debug_recvsample() + debug_recvsample(); } serial_low(); // sync_recv() need low }