summaryrefslogtreecommitdiffstats
path: root/keyboards/crkbd/serial.h
diff options
context:
space:
mode:
authorKosuke Adachi <ks@fstn.jp>2018-06-09 00:28:28 +0200
committerDrashna Jaelre <drashna@live.com>2018-06-09 00:28:28 +0200
commit710937e4ef1e14d82261fc439aa6fcfcdbd64bf5 (patch)
tree6226a1d3027634af4b4508dce101ff938f356782 /keyboards/crkbd/serial.h
parent300cf977c93b9b37a57643ddbfa8d0bd13b29e18 (diff)
downloadqmk_firmware-710937e4ef1e14d82261fc439aa6fcfcdbd64bf5.tar.gz
qmk_firmware-710937e4ef1e14d82261fc439aa6fcfcdbd64bf5.tar.xz
Add corne keyboard (#3119)
* Fork from helix * Move rev2 to rev1 * Remove unused settings * Move split_util to outof rev * Setup KEYMAP for crkbd * Remove old image * Move keymaps directory and glcdfont.c * Remove AUDIO in keymap * Show keylog * Show keylogs * Show time log * Remove EISU/KANA * Use KEYMAP_kc * Remove iota_gfx_record_user wrapping * Remove unused settings for layer * Add keylogger.c * Fix uppercase letters to lower * Add timelogger.c * Default RGBLED_NUM = 27 * Remove unused setting * Add mode icon reader * Add matrix_write_ln * Add layer_state_reader * Move to lib directory * Rename functions * Add host_led_state_reader * Add logo_reader * Cleaning of iota_gfx_task * Fix bugs and add key defines * Remove unnecessary comments * Update crkbd readme * Move libs to lib directories * Rename KEYMAP to LAYOUT
Diffstat (limited to 'keyboards/crkbd/serial.h')
-rw-r--r--keyboards/crkbd/serial.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/keyboards/crkbd/serial.h b/keyboards/crkbd/serial.h
new file mode 100644
index 000000000..43e51f7fa
--- /dev/null
+++ b/keyboards/crkbd/serial.h
@@ -0,0 +1,32 @@
+#ifndef MY_SERIAL_H
+#define MY_SERIAL_H
+
+#include "config.h"
+#include <stdbool.h>
+
+/* TODO: some defines for interrupt setup */
+#define SERIAL_PIN_DDR DDRD
+#define SERIAL_PIN_PORT PORTD
+#define SERIAL_PIN_INPUT PIND
+
+#ifndef USE_SERIAL_PD2
+#define SERIAL_PIN_MASK _BV(PD0)
+#define SERIAL_PIN_INTERRUPT INT0_vect
+#else
+#define SERIAL_PIN_MASK _BV(PD2)
+#define SERIAL_PIN_INTERRUPT INT2_vect
+#endif
+
+#define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
+#define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
+
+// Buffers for master - slave communication
+extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
+extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH];
+
+void serial_master_init(void);
+void serial_slave_init(void);
+int serial_update_buffers(void);
+bool serial_slave_data_corrupt(void);
+
+#endif