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
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();
|
|
}
|