Forum: Mikrocontroller und Digitale Elektronik HSV Funktion Light WS2812


von Simon (Gast)


Lesenswert?

Hallo,

in der Arduino Version von Lightweight WS2812 gibt es eine HSV 
Umrechnung, leider aber nicht für die AVR Version.

Leider kann man das ganze so nicht auf dem AVR nutzen.


Nun die Frage, wie baue ich das ganze auf C um? Ich habe hier ein 
Problem, die Struktur richtig zu nutzen.
1
/*main.c*/
2
//..
3
#define NUM_LEDS 10
4
cRGB leds[NUM_LEDS]; // 10xWS2812B
5
//..
6
void main(void)
7
{
8
int led = 1;
9
ws2812_sethsv(leds, led, 0, 255, 255); // ledarray, led#, hue, sat, val 
10
//..
11
}
12
13
/*lib.c*/
14
void inline ws2812_setled_hsv(struct cRGB *ledarray, uint8_t led_no, uint16_t hue, uint8_t sat, uint8_t val)
15
{
16
// Umrechnung
17
// ..
18
19
  (*ledarray)[led].b = hue;
20
}

Wie muss ich das nun richtig anwenden, damit die Funktion mir die 3 RGB 
Werte für eine LED umrechnet? Mir geht es hier nur um das Verständnis 
des Struct Arrays.

von Stefan S. (sschultewolter)


Lesenswert?

Sollte so funktionieren
1
#define NUM_LEDS 10
2
cRGB leds[NUM_LEDS];//..
3
void main(void)
4
{
5
int led = 1;
6
ws2812_sethsv(leds, led, 0, 255, 255);
7
//..
8
}
9
10
/*lib.c*/
11
void inline ws2812_setled_hsv(struct cRGB *ledarray, uint8_t led, uint16_t hue, uint8_t sat, uint8_t val)
12
{
13
// Umrechnung
14
// ..
15
16
  ledarray[led].b = hue;
17
//..
18
}

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.