serial.h 910 B

123456789101112131415161718192021222324252627282930313233343536
  1. #ifndef MY_SERIAL_H
  2. #define MY_SERIAL_H
  3. #include "config.h"
  4. #include <stdbool.h>
  5. /* TODO: some defines for interrupt setup */
  6. #define SERIAL_PIN_DDR DDRD
  7. #define SERIAL_PIN_PORT PORTD
  8. #define SERIAL_PIN_INPUT PIND
  9. #ifndef USE_SERIAL_PD2
  10. #define SERIAL_PIN_MASK _BV(PD0)
  11. #define SERIAL_PIN_INTERRUPT INT0_vect
  12. #else
  13. #define SERIAL_PIN_MASK _BV(PD2)
  14. #define SERIAL_PIN_INTERRUPT INT2_vect
  15. #endif
  16. #define SERIAL_SLAVE_BUFFER_LENGTH MATRIX_ROWS/2
  17. #ifdef KEYBOARD_helix_rev1
  18. #define SERIAL_MASTER_BUFFER_LENGTH 1
  19. #else
  20. #define SERIAL_MASTER_BUFFER_LENGTH MATRIX_ROWS/2
  21. #endif
  22. // Buffers for master - slave communication
  23. extern volatile uint8_t serial_slave_buffer[SERIAL_SLAVE_BUFFER_LENGTH];
  24. extern volatile uint8_t serial_master_buffer[SERIAL_MASTER_BUFFER_LENGTH];
  25. void serial_master_init(void);
  26. void serial_slave_init(void);
  27. int serial_update_buffers(void);
  28. bool serial_slave_data_corrupt(void);
  29. #endif