@ -1,2 +1,2 @@ | |||||
SRC += ws2812.c | |||||
WS2812_DRIVER_REQUIRED = yes | |||||
SRC += color.c | SRC += color.c |
@ -1,3 +1,3 @@ | |||||
SRC += ws2812.c | |||||
WS2812_DRIVER_REQUIRED = yes | |||||
SRC += color.c | SRC += color.c | ||||
EXTRAKEY_ENABLE = yes | EXTRAKEY_ENABLE = yes |
@ -1,2 +1 @@ | |||||
# variant for WS2812 LEDs | |||||
SRC += ws2812.c | |||||
WS2812_DRIVER_REQUIRED = yes |
@ -1,33 +0,0 @@ | |||||
/* | |||||
Copyright 2021 MajorKoos <github.com/majorkoos> | |||||
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 | |||||
the Free Software Foundation, either version 2 of the License, or | |||||
(at your option) any later version. | |||||
This program is distributed in the hope that it will be useful, | |||||
but WITHOUT ANY WARRANTY; without even the implied warranty of | |||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||||
GNU General Public License for more details. | |||||
You should have received a copy of the GNU General Public License | |||||
along with this program. If not, see <http://www.gnu.org/licenses/>. | |||||
*/ | |||||
#include "vea.h" | |||||
void rgblight_call_driver(LED_TYPE *start_led, uint8_t num_leds) { vea_setleds(start_led, num_leds); } | |||||
void vea_rgb_init(void) { i2c_init(); } | |||||
// Setleds for standard RGB | |||||
void vea_setleds(LED_TYPE *ledarray, uint16_t leds) { | |||||
static bool s_init = false; | |||||
if (!s_init) { | |||||
vea_rgb_init(); | |||||
s_init = true; | |||||
} | |||||
i2c_transmit(WS2812_ADDRESS, (uint8_t *)ledarray, sizeof(LED_TYPE) * (leds >> 1), WS2812_TIMEOUT); | |||||
i2c_transmit(WS2812_ADDRESS_SPLIT, (uint8_t *)ledarray+(sizeof(LED_TYPE) * (leds >> 1)), sizeof(LED_TYPE) * (leds - (leds >> 1)), WS2812_TIMEOUT); | |||||
}; |
@ -0,0 +1,34 @@ | |||||
#include "ws2812.h" | |||||
#include "i2c_master.h" | |||||
#ifdef RGBW | |||||
# error "RGBW not supported" | |||||
#endif | |||||
#ifndef WS2812_I2C_ADDRESS | |||||
# define WS2812_I2C_ADDRESS 0xB0 | |||||
#endif | |||||
#ifndef WS2812_I2C_ADDRESS_RIGHT | |||||
# define WS2812_I2C_ADDRESS_RIGHT 0xB8 | |||||
#endif | |||||
#ifndef WS2812_I2C_TIMEOUT | |||||
# define WS2812_I2C_TIMEOUT 100 | |||||
#endif | |||||
void ws2812_init(void) { | |||||
i2c_init(); | |||||
} | |||||
// Setleds for standard RGB | |||||
void ws2812_setleds(LED_TYPE *ledarray, uint16_t leds) { | |||||
static bool s_init = false; | |||||
if (!s_init) { | |||||
ws2812_init(); | |||||
s_init = true; | |||||
} | |||||
i2c_transmit(WS2812_I2C_ADDRESS, (uint8_t *)ledarray, sizeof(LED_TYPE) * (leds >> 1), WS2812_I2C_TIMEOUT); | |||||
i2c_transmit(WS2812_I2C_ADDRESS_RIGHT, (uint8_t *)ledarray+(sizeof(LED_TYPE) * (leds >> 1)), sizeof(LED_TYPE) * (leds - (leds >> 1)), WS2812_I2C_TIMEOUT); | |||||
} |
@ -1,2 +1,2 @@ | |||||
SRC += ws2812.c | |||||
WS2812_DRIVER_REQUIRED = yes | |||||
EXTRAKEY_ENABLE = yes | EXTRAKEY_ENABLE = yes |
@ -1 +1 @@ | |||||
SRC += ws2812.c | |||||
WS2812_DRIVER_REQUIRED = yes |