1 #include <arch/antares.h>
4 #include <avr/interrupt.h>
5 #include <util/delay.h>
6 #include <generated/usbconfig.h>
7 #include <arch/vusb/usbportability.h>
8 #include <arch/vusb/usbdrv.h>
10 #include <lib/light_ws2812.h>
12 unsigned char iobuf[16];
13 struct cRGB target[2] = {
18 struct cRGB current[2] = {
24 uchar usbFunctionSetup(uchar data[8])
26 usbRequest_t *rq = (
void *)data;
27 switch (rq->bRequest) {
29 target[0].r=rq->wValue.bytes[0];
30 target[0].g=rq->wValue.bytes[1];
31 target[0].b=rq->wValue.bytes[2];
32 ws2812_setleds(&target, 2);
35 ws2812_setleds(&target, 2);
36 _delay_ms(rq->wValue.word);
37 ws2812_setleds(¤t, 2);
50 uchar usbFunctionWrite(uchar *data, uchar len)
52 memcpy(iobuf, data, len);
56 inline void usbReconnect()
63 ANTARES_INIT_LOW(io_init)
70 ANTARES_INIT_HIGH(uinit)