]> git.donarmstrong.com Git - qmk_firmware.git/blob - keyboards/crkbd/serial.h
Merge branch 'master' of github.com:qmk/qmk_firmware into hf/shinydox
[qmk_firmware.git] / keyboards / crkbd / serial.h
1 #ifndef MY_SERIAL_H
2 #define MY_SERIAL_H
3
4 #include "config.h"
5 #include <stdbool.h>
6
7 /* TODO:  some defines for interrupt setup */
8 #define SERIAL_PIN_DDR DDRD
9 #define SERIAL_PIN_PORT PORTD
10 #define SERIAL_PIN_INPUT PIND
11
12 #ifndef USE_SERIAL_PD2
13 #define SERIAL_PIN_MASK _BV(PD0)
14 #define SERIAL_PIN_INTERRUPT INT0_vect
15 #else
16 #define SERIAL_PIN_MASK _BV(PD2)
17 #define SERIAL_PIN_INTERRUPT INT2_vect
18 #endif
19
20 #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
21 #define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
22
23 // Buffers for master - slave communication
24 extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
25 extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH];
26
27 void serial_master_init(void);
28 void serial_slave_init(void);
29 int serial_update_buffers(void);
30 bool serial_slave_data_corrupt(void);
31
32 #endif