keyboard layout for qmk firmware
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.

106 lines
1.9 KiB

  1. #include <util/delay.h>
  2. #include "split_leds.h"
  3. extern inline void _led_1_on(void);
  4. extern inline void _led_2_on(void);
  5. extern inline void _led_3_on(void);
  6. extern inline void _led_1_off(void);
  7. extern inline void _led_2_off(void);
  8. extern inline void _led_3_off(void);
  9. extern inline void _led_set_master(uint8_t num, led_state_t state);
  10. extern inline void _led_set_slave(uint8_t num, led_state_t state);
  11. void left_led_set(uint8_t num, led_state_t state)
  12. {
  13. if (has_usb() && isLeftHand)
  14. {
  15. _led_set_master(num, state);
  16. }
  17. else if (has_usb() && !isLeftHand)
  18. {
  19. _led_set_slave(num, state);
  20. }
  21. }
  22. void right_led_set(uint8_t num, led_state_t state)
  23. {
  24. if (has_usb() && !isLeftHand)
  25. {
  26. _led_set_master(num, state);
  27. }
  28. else if (has_usb() && isLeftHand)
  29. {
  30. _led_set_slave(num, state);
  31. }
  32. }
  33. void both_led_set(uint8_t num, led_state_t state)
  34. {
  35. right_led_set(num, state);
  36. left_led_set(num, state);
  37. }
  38. void left_led_all_on(void)
  39. {
  40. left_led_set(1, LED_ON);
  41. left_led_set(2, LED_ON);
  42. left_led_set(3, LED_ON);
  43. }
  44. void left_led_all_off(void)
  45. {
  46. left_led_set(1, LED_OFF);
  47. left_led_set(2, LED_OFF);
  48. left_led_set(3, LED_OFF);
  49. }
  50. void right_led_all_on(void)
  51. {
  52. right_led_set(1, LED_ON);
  53. right_led_set(2, LED_ON);
  54. right_led_set(3, LED_ON);
  55. }
  56. void right_led_all_off(void)
  57. {
  58. right_led_set(1, LED_OFF);
  59. right_led_set(2, LED_OFF);
  60. right_led_set(3, LED_OFF);
  61. }
  62. void both_led_all_on(void)
  63. {
  64. right_led_all_on();
  65. left_led_all_on();
  66. }
  67. void both_led_all_off(void)
  68. {
  69. right_led_all_off();
  70. left_led_all_off();
  71. }
  72. void _led_init(void)
  73. {
  74. DDRF |= (1<<PF5 | 1<<PF6 | 1<<PF4);
  75. PORTF &= ~(1<<PF5 | 1<<PF6 | 1<<PF4);
  76. }
  77. void _led_boot_animation(void)
  78. {
  79. _led_all_off();
  80. _led_1_on();
  81. _delay_ms(100);
  82. _led_2_on();
  83. _delay_ms(100);
  84. _led_3_on();
  85. _delay_ms(100);
  86. _led_1_off();
  87. _delay_ms(100);
  88. _led_2_off();
  89. _delay_ms(100);
  90. _led_3_off();
  91. _led_all_off();
  92. }