qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

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 }