2
0

serial.h 799 B

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