aboutsummaryrefslogtreecommitdiff
path: root/keyboards/40percentclub/ut47/led_controls.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/40percentclub/ut47/led_controls.c')
-rw-r--r--keyboards/40percentclub/ut47/led_controls.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/keyboards/40percentclub/ut47/led_controls.c b/keyboards/40percentclub/ut47/led_controls.c
new file mode 100644
index 0000000000..34a0ceb5b7
--- /dev/null
+++ b/keyboards/40percentclub/ut47/led_controls.c
@@ -0,0 +1,44 @@
+// Copyright 2018 Carlos Filoteo
+// SPDX-License-Identifier: GPL-2.0-or-later
+#include QMK_KEYBOARD_H
+#include "uart.h"
+
+bool led_update_kb(led_t led_state) {
+ bool res = led_update_user(led_state);
+ if (res) {
+ if (led_state.caps_lock) {
+ // output low
+ gpio_set_pin_output(B0);
+ gpio_write_pin_low(B0);
+ gpio_set_pin_output(D5);
+ gpio_write_pin_low(D5);
+ } else {
+ // Hi-Z
+ gpio_set_pin_input(B0);
+ gpio_set_pin_input(D5);
+ }
+ }
+ return false;
+}
+
+void keyboard_post_init_kb(void) {
+ uart_init(9600);
+
+ keyboard_post_init_user();
+}
+
+bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
+ if (record->event.pressed) {
+ uart_write((record->event.key.row * 16) + record->event.key.col);
+
+ switch (keycode) {
+ case LED_TOG:
+ uart_write(0x64);
+ return false;
+ case LED_CHG:
+ uart_write(0x65);
+ return false;
+ }
+ }
+ return process_record_user(keycode, record);
+}