summaryrefslogtreecommitdiff
path: root/keyboard/lightsaber/led.c
diff options
context:
space:
mode:
authorRalf Schmitt <ralf@bunkertor.net>2014-03-19 23:58:08 +0100
committerRalf Schmitt <ralf@bunkertor.net>2014-03-19 23:58:08 +0100
commit526d988a0caadc1a48bea862f605c9cee90c3dd3 (patch)
tree8c47584c7ab21ffa9f7b6b46937a33c85cb4dc43 /keyboard/lightsaber/led.c
parent160678a7b825af634a6fe02ea6a191b5c67cf75b (diff)
Added basic led+backlight support
Diffstat (limited to 'keyboard/lightsaber/led.c')
-rw-r--r--keyboard/lightsaber/led.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/keyboard/lightsaber/led.c b/keyboard/lightsaber/led.c
index 9c98f9db2c..c3f85427f5 100644
--- a/keyboard/lightsaber/led.c
+++ b/keyboard/lightsaber/led.c
@@ -1,5 +1,5 @@
/*
-Copyright 2012 Jun Wako <wakojun@gmail.com>
+Copyright 2014 Ralf Schmitt <ralf@bunkertor.net>
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
@@ -19,6 +19,36 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include "stdint.h"
#include "led.h"
+/* LED pin configuration
+ *
+ * Caps PB0 (low)
+ * NumLock PB4 (low)
+ *
+ */
void led_set(uint8_t usb_led)
{
+ // Set as output.
+ DDRB |= (1<<0) | (1<<4);
+
+ if (usb_led & (1<<USB_LED_CAPS_LOCK))
+ {
+ // Output low.
+ PORTB &= ~(1<<0);
+ }
+ else
+ {
+ // Output high.
+ PORTB |= (1<<0);
+ }
+
+ if (usb_led & (1<<USB_LED_NUM_LOCK))
+ {
+ // Output low.
+ PORTB &= ~(1<<4);
+ }
+ else
+ {
+ // Output high.
+ PORTB |= (1<<4);
+ }
}