keyboard layout for qmk firmware
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
1.9 KiB

#include <util/delay.h>
#include "split_leds.h"
extern inline void _led_1_on(void);
extern inline void _led_2_on(void);
extern inline void _led_3_on(void);
extern inline void _led_1_off(void);
extern inline void _led_2_off(void);
extern inline void _led_3_off(void);
extern inline void _led_set_master(uint8_t num, led_state_t state);
extern inline void _led_set_slave(uint8_t num, led_state_t state);
void left_led_set(uint8_t num, led_state_t state)
{
if (has_usb() && isLeftHand)
{
_led_set_master(num, state);
}
else if (has_usb() && !isLeftHand)
{
_led_set_slave(num, state);
}
}
void right_led_set(uint8_t num, led_state_t state)
{
if (has_usb() && !isLeftHand)
{
_led_set_master(num, state);
}
else if (has_usb() && isLeftHand)
{
_led_set_slave(num, state);
}
}
void both_led_set(uint8_t num, led_state_t state)
{
right_led_set(num, state);
left_led_set(num, state);
}
void left_led_all_on(void)
{
left_led_set(1, LED_ON);
left_led_set(2, LED_ON);
left_led_set(3, LED_ON);
}
void left_led_all_off(void)
{
left_led_set(1, LED_OFF);
left_led_set(2, LED_OFF);
left_led_set(3, LED_OFF);
}
void right_led_all_on(void)
{
right_led_set(1, LED_ON);
right_led_set(2, LED_ON);
right_led_set(3, LED_ON);
}
void right_led_all_off(void)
{
right_led_set(1, LED_OFF);
right_led_set(2, LED_OFF);
right_led_set(3, LED_OFF);
}
void both_led_all_on(void)
{
right_led_all_on();
left_led_all_on();
}
void both_led_all_off(void)
{
right_led_all_off();
left_led_all_off();
}
void _led_init(void)
{
DDRF |= (1<<PF5 | 1<<PF6 | 1<<PF4);
PORTF &= ~(1<<PF5 | 1<<PF6 | 1<<PF4);
}
void _led_boot_animation(void)
{
_led_all_off();
_led_1_on();
_delay_ms(100);
_led_2_on();
_delay_ms(100);
_led_3_on();
_delay_ms(100);
_led_1_off();
_delay_ms(100);
_led_2_off();
_delay_ms(100);
_led_3_off();
_led_all_off();
}