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