From 41d5d3e6558d2b25680a66ba79e12bd9f1577328 Mon Sep 17 00:00:00 2001 From: Rasmus Schults Date: Thu, 30 Nov 2017 01:50:03 +0200 Subject: Add Lightsaver V3 keyboard --- keyboards/lightsaver/lightsaver.c | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 keyboards/lightsaver/lightsaver.c (limited to 'keyboards/lightsaver/lightsaver.c') diff --git a/keyboards/lightsaver/lightsaver.c b/keyboards/lightsaver/lightsaver.c new file mode 100644 index 0000000000..75e35b28b2 --- /dev/null +++ b/keyboards/lightsaver/lightsaver.c @@ -0,0 +1,60 @@ +/* Copyright 2017 Rasmus Schults + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +#include "lightsaver.h" +#include "indicator_leds.h" + +enum BACKLIGHT_AREAS { + BACKLIGHT_ALPHAS = 0b00000010, // Alpha keys + BACKLIGHT_FKEYS = 0b00000100, // Function row keys + BACKLIGHT_MODNUM = 0b00001000, // Modifiers and number row + BACKLIGHT_NUMPAD = 0b01000000 // Numpad area +}; + +void backlight_set(uint8_t level) { + if (level > 0) { + // Turn on leds + PORTB &= ~BACKLIGHT_ALPHAS; + PORTB &= ~BACKLIGHT_FKEYS; + PORTB &= ~BACKLIGHT_MODNUM; + PORTE &= ~BACKLIGHT_NUMPAD; + } else { + // Turn off leds + PORTB |= BACKLIGHT_ALPHAS; + PORTB |= BACKLIGHT_FKEYS; + PORTB |= BACKLIGHT_MODNUM; + PORTE |= BACKLIGHT_NUMPAD; + } +} + +void led_set_kb(uint8_t usb_led) { + bool leds[8] = { + usb_led & (1<