stapelberg.c 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #include "stapelberg.h"
  2. void matrix_init_kb(void) {
  3. // put your keyboard start-up code here
  4. // runs once when the firmware starts up
  5. // * Set our LED pins as output
  6. DDRF |= (1<<0); // Keypad LED
  7. DDRF |= (1<<1); // ScrLock LED
  8. DDRF |= (1<<2); // NumLock LED
  9. DDRF |= (1<<3); // CapsLock LED
  10. matrix_init_user();
  11. }
  12. void matrix_scan_kb(void) {
  13. // put your looping keyboard code here
  14. // runs every cycle (a lot)
  15. matrix_scan_user();
  16. }
  17. bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
  18. // put your per-action keyboard code here
  19. // runs for every action, just before processing by the firmware
  20. return process_record_user(keycode, record);
  21. }
  22. void led_init_ports() {
  23. // * Set our LED pins as output
  24. DDRF |= (1<<0); // Keypad LED
  25. DDRF |= (1<<1); // ScrLock LED
  26. DDRF |= (1<<2); // NumLock LED
  27. DDRF |= (1<<3); // CapsLock LED
  28. }
  29. void led_set_kb(uint8_t usb_led) {
  30. DDRF |= (1<<0); // Keypad LED
  31. if (usb_led & (1<<USB_LED_COMPOSE)) {
  32. PORTF |= (1<<0);
  33. } else {
  34. PORTF &= ~(1<<0);
  35. }
  36. DDRF |= (1<<1); // ScrLock LED
  37. if (usb_led & (1<<USB_LED_SCROLL_LOCK)) {
  38. PORTF |= (1<<1);
  39. } else {
  40. PORTF &= ~(1<<1);
  41. }
  42. DDRF |= (1<<2); // NumLock LED
  43. if (usb_led & (1<<USB_LED_NUM_LOCK)) {
  44. PORTF |= (1<<2);
  45. } else {
  46. PORTF &= ~(1<<2);
  47. }
  48. DDRF |= (1<<3); // CapsLock LED
  49. if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
  50. PORTF |= (1<<3);
  51. } else {
  52. PORTF &= ~(1<<3);
  53. }
  54. led_set_user(usb_led);
  55. inline void kinesis_keypad_led_on(void) { DDRF |= (1<<0); PORTF |= (1<<0); }
  56. inline void kinesis_scroll_led_on(void) { DDRF |= (1<<1); PORTF |= (1<<1); }
  57. inline void kinesis_num_led_on(void) { DDRF |= (1<<2); PORTF |= (1<<2); }
  58. inline void kinesis_caps_led_on(void) { DDRF |= (1<<3); PORTF |= (1<<3); }
  59. inline void kinesis_keypad_led_off(void) { DDRF &= ~(1<<0); PORTF &= ~(1<<0); }
  60. inline void kinesis_scroll_led_off(void) { DDRF &= ~(1<<1); PORTF &= ~(1<<1); }
  61. inline void kinesis_num_led_off(void) { DDRF &= ~(1<<2); PORTF &= ~(1<<2); }
  62. inline void kinesis_caps_led_off(void) { DDRF &= ~(1<<3); PORTF &= ~(1<<3); }
  63. }
  64. /* This is the old code that has the port information in it.
  65. inline void kinesis_keypad_led_on(void) { DDRF |= (1<<0); PORTF |= (1<<0); }
  66. inline void kinesis_scroll_led_on(void) { DDRF |= (1<<1); PORTF |= (1<<1); }
  67. inline void kinesis_num_led_on(void) { DDRF |= (1<<2); PORTF |= (1<<2); }
  68. inline void kinesis_caps_led_on(void) { DDRF |= (1<<3); PORTF |= (1<<3); }
  69. inline void kinesis_keypad_led_off(void) { DDRF &= ~(1<<0); PORTF &= ~(1<<0); }
  70. inline void kinesis_scroll_led_off(void) { DDRF &= ~(1<<1); PORTF &= ~(1<<1); }
  71. inline void kinesis_num_led_off(void) { DDRF &= ~(1<<2); PORTF &= ~(1<<2); }
  72. inline void kinesis_caps_led_off(void) { DDRF &= ~(1<<3); PORTF &= ~(1<<3); }
  73. */