logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

alvicstep.c (1627B)


  1. // Copyright 2023 QMK
  2. // SPDX-License-Identifier: GPL-2.0-or-later
  3. #include "alvicstep.h"
  4. // begin section origin https://github.com/alvicstep/tmk_keyboard
  5. void all_led_off(void)
  6. {
  7. PORTD = 0b11111111;
  8. }
  9. void all_led_on(void)
  10. {
  11. PORTD = 0b00000000;
  12. }
  13. void num_lock_led_on(void)
  14. {
  15. PORTD = 0b11101111;
  16. }
  17. void caps_lock_led_on(void)
  18. {
  19. PORTD = 0b01111111;
  20. }
  21. void scroll_lock_led_on(void)
  22. {
  23. PORTD = 0b11011111;
  24. }
  25. void keypad_led_on(void)
  26. {
  27. PORTD = 0b10111111;
  28. }
  29. void blink_all_leds(void)
  30. {
  31. all_led_on();
  32. _delay_ms(500);
  33. all_led_off();
  34. _delay_ms(100);
  35. caps_lock_led_on();
  36. _delay_ms(100);
  37. num_lock_led_on();
  38. _delay_ms(100);
  39. scroll_lock_led_on();
  40. _delay_ms(100);
  41. keypad_led_on();
  42. _delay_ms(100);
  43. //back
  44. scroll_lock_led_on();
  45. _delay_ms(100);
  46. num_lock_led_on();
  47. _delay_ms(100);
  48. caps_lock_led_on();
  49. _delay_ms(100);
  50. all_led_off();
  51. }
  52. // End section origin https://github.com/alvicstep/tmk_keyboard
  53. void matrix_init_kb(void) {
  54. blink_all_leds();
  55. matrix_init_user();
  56. }
  57. bool led_update_kb(led_t led_state) {
  58. bool res = led_update_user(led_state);
  59. if(res) {
  60. //Copyright 2014 Warren Janssens <warren.janssens@gmail.com>
  61. uint8_t leds = 0xF0;
  62. if (led_state.num_lock)
  63. leds &= ~0x10;
  64. if (led_state.caps_lock)
  65. leds &= ~0x80;
  66. if (led_state.scroll_lock)
  67. leds &= ~0x20;
  68. PORTD = (PORTD & 0x0F) | leds;
  69. }
  70. return res;
  71. }