qmk-keychron-q3-colemak-dh/keyboards/kinesis/alvicstep/alvicstep.c
Ryan 9dbee3e23d
Remove useless "ifdef KEYBOARD_*" (#20078)
Co-authored-by: Nick Brassel <nick@tzarc.org>
2023-03-16 20:18:33 +11:00

90 lines
1.5 KiB
C

#include "alvicstep.h"
// begin section origin https://github.com/alvicstep/tmk_keyboard
void all_led_off(void)
{
PORTD = 0b11111111;
}
void all_led_on(void)
{
PORTD = 0b00000000;
}
void num_lock_led_on(void)
{
PORTD = 0b11101111;
}
void caps_lock_led_on(void)
{
PORTD = 0b01111111;
}
void scroll_lock_led_on(void)
{
PORTD = 0b11011111;
}
void keypad_led_on(void)
{
PORTD = 0b10111111;
}
void blink_all_leds(void)
{
all_led_on();
_delay_ms(500);
all_led_off();
_delay_ms(100);
caps_lock_led_on();
_delay_ms(100);
num_lock_led_on();
_delay_ms(100);
scroll_lock_led_on();
_delay_ms(100);
keypad_led_on();
_delay_ms(100);
//back
scroll_lock_led_on();
_delay_ms(100);
num_lock_led_on();
_delay_ms(100);
caps_lock_led_on();
_delay_ms(100);
all_led_off();
}
// End section origin https://github.com/alvicstep/tmk_keyboard
void matrix_init_kb(void) {
blink_all_leds();
matrix_init_user();
}
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
//Copyright 2014 Warren Janssens <warren.janssens@gmail.com>
uint8_t leds = 0xF0;
if (led_state.num_lock)
leds &= ~0x10;
if (led_state.caps_lock)
leds &= ~0x80;
if (led_state.scroll_lock)
leds &= ~0x20;
PORTD = (PORTD & 0x0F) | leds;
}
return res;
}