You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
741 B

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