1
0

Correct capslock led and add new "numlock" led

This commit is contained in:
Kai Ryu 2014-05-23 18:49:11 +09:00
parent f3687d4249
commit 6eb4e4ba5d
3 changed files with 23 additions and 2 deletions

View File

@ -64,6 +64,9 @@ static void layer_state_set(uint32_t state)
layer_state = state;
layer_debug(); dprintln();
clear_keyboard_but_mods(); // To avoid stuck keys
#ifdef ON_LAYER_CHANGE
layer_change(layer_state);
#endif
}
void layer_clear(void)

View File

@ -56,6 +56,7 @@ void layer_invert(uint8_t layer);
void layer_or(uint32_t state);
void layer_and(uint32_t state);
void layer_xor(uint32_t state);
void layer_change(uint32_t state);
#else
#define layer_state 0
#define layer_clear()
@ -68,6 +69,7 @@ void layer_xor(uint32_t state);
#define layer_and(state)
#define layer_xor(state)
#define layer_debug()
#define layer_change(state)
#endif

View File

@ -18,6 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#include <avr/io.h>
#include "stdint.h"
#include "led.h"
#include "action_layer.h"
/* LED pin configration
@ -27,12 +28,27 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
void led_set(uint8_t usb_led)
{
if (usb_led & (1<<USB_LED_CAPS_LOCK)) {
// output low
// output high
DDRB |= (1<<PB5);
PORTB &= ~(1<<PB5);
PORTB |= (1<<PB5);
} else {
// Hi-Z
DDRB &= ~(1<<PB5);
PORTB &= ~(1<<PB5);
}
}
#ifdef ON_LAYER_CHANGE
void layer_change(uint32_t state)
{
if (state & (1UL<<2)) {
// output high
DDRB |= (1<<PB7);
PORTB |= (1<<PB7);
} else {
// Hi-Z
DDRB &= ~(1<<PB7);
PORTB &= ~(1<<PB7);
}
}
#endif