qmk_firmware

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

led_controls.c (1107B)


      1 // Copyright 2018 Carlos Filoteo
      2 // SPDX-License-Identifier: GPL-2.0-or-later
      3 #include QMK_KEYBOARD_H
      4 #include "uart.h"
      5 
      6 bool led_update_kb(led_t led_state) {
      7     bool res = led_update_user(led_state);
      8     if (res) {
      9         if (led_state.caps_lock) {
     10             // output low
     11             gpio_set_pin_output(B0);
     12             gpio_write_pin_low(B0);
     13             gpio_set_pin_output(D5);
     14             gpio_write_pin_low(D5);
     15         } else {
     16             // Hi-Z
     17             gpio_set_pin_input(B0);
     18             gpio_set_pin_input(D5);
     19         }
     20     }
     21     return false;
     22 }
     23 
     24 void keyboard_post_init_kb(void) {
     25     uart_init(9600);
     26 
     27     keyboard_post_init_user();
     28 }
     29 
     30 bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
     31     if (record->event.pressed) {
     32         uart_write((record->event.key.row * 16) + record->event.key.col);
     33 
     34         switch (keycode) {
     35             case LED_TOG:
     36                 uart_write(0x64);
     37                 return false;
     38             case LED_CHG:
     39                 uart_write(0x65);
     40                 return false;
     41         }
     42     }
     43     return process_record_user(keycode, record);
     44 }