cospad.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #ifndef COSPAD_H
  2. #define COSPAD_H
  3. #include "quantum.h"
  4. // readability
  5. #define XXX KC_NO
  6. /* COSPAD ortho matrix layout
  7. * ,-------------------.
  8. * | 00 | 01 | 02 | 03 |
  9. * |----|----|----|----|
  10. * | 10 | 11 | 12 | 13 |
  11. * |----|----|----|----|
  12. * | 20 | 21 | 22 | 23 |
  13. * |----|----|----|----|
  14. * | 30 | 31 | 32 | 33 |
  15. * |----|----|----|----|
  16. * | 40 | 41 | 42 | 43 |
  17. * |----|----|----|----|
  18. * | 50 | 51 | 52 | 53 |
  19. * `-------------------'
  20. */
  21. /* COSPAD numpad matrix layout
  22. * ,-------------------.
  23. * | 00 | 01 | 02 | 03 |
  24. * |----|----|----|----|
  25. * | 10 | 11 | 12 | 13 |
  26. * |----|----|----|----|
  27. * | 20 | 21 | 22 | |
  28. * |----|----|----| 23 |
  29. * | 30 | 31 | 32 | |
  30. * |----|----|----|----|
  31. * | 40 | 41 | 42 | |
  32. * |----|----|----| 43 |
  33. * | 50 | 52 | |
  34. * `-------------------'
  35. */
  36. // The first section contains all of the arguments
  37. // The second converts the arguments into a two-dimensional array
  38. #define KEYMAP( \
  39. k00, k01, k02, k03, \
  40. k10, k11, k12, k13, \
  41. k20, k21, k22, k23, \
  42. k30, k31, k32, k33, \
  43. k40, k41, k42, k43, \
  44. k50, k51, k52, k53 \
  45. ) \
  46. { \
  47. {k00, k01, k02, k03}, \
  48. {k10, k11, k12, k13}, \
  49. {k20, k21, k22, k23}, \
  50. {k30, k31, k32, k33}, \
  51. {k40, k41, k42, k43}, \
  52. {k50, k51, k52, k53} \
  53. }
  54. void matrix_init_user(void);
  55. void matrix_scan_user(void);
  56. /*
  57. inline void cospad_bl_led_on(void) { DDRF |= (1<<7); PORTF &= ~(1<<7); }
  58. inline void cospad_bl_led_off(void) { DDRF &= ~(1<<7); PORTF &= ~(1<<7); }
  59. */
  60. inline void cospad_bl_led_on(void) { PORTF &= ~(1<<7); }
  61. inline void cospad_bl_led_off(void) { PORTF |= (1<<7); }
  62. inline void cospad_bl_led_togg(void) {
  63. uint8_t bl_mask = PORTF&(1<<7);
  64. if (bl_mask) {
  65. PORTF &= ~(1<<7);
  66. } else {
  67. PORTF |= (1<<7);
  68. }
  69. }
  70. #endif