@@ -17,12 +17,32 @@ LED::LED()
17
17
18
18
void LED::init ()
19
19
{
20
- switch (led_pin)
21
- {
22
- case 29 :
23
- FastLED.addLeds <NEOPIXEL, 29 >(leds, NUM_LEDS);
24
- break ;
25
- }
20
+ // for(u8 n; n < nums_led_channel_available; n++)
21
+ // {
22
+ // switch(led_pins[n])
23
+ // {
24
+ // case PB6:
25
+ // FastLED.addLeds<NEOPIXEL, PB6>(leds[n], NUM_LEDS);
26
+ // break;
27
+ // case PB11:
28
+ // FastLED.addLeds<NEOPIXEL, PB11>(leds[n], NUM_LEDS);
29
+ // break;
30
+ // case PA5:
31
+ // FastLED.addLeds<NEOPIXEL, PA5>(leds[n], NUM_LEDS);
32
+ // break;
33
+ // case PB14:
34
+ // FastLED.addLeds<NEOPIXEL, PB14>(leds[n], NUM_LEDS);
35
+ // break;
36
+ // }
37
+ // }
38
+
39
+ // For STLINK V2
40
+ // pinMode(PB10, INPUT_FLOATING);
41
+ FastLED.addLeds <NEOPIXEL, PB6>(leds[0 ], NUM_LEDS);
42
+ FastLED.addLeds <NEOPIXEL, PB11>(leds[1 ], NUM_LEDS);
43
+ FastLED.addLeds <NEOPIXEL, PA5>(leds[2 ], NUM_LEDS);
44
+ FastLED.addLeds <NEOPIXEL, PB14>(leds[3 ], NUM_LEDS);
45
+
26
46
27
47
FastLED.setBrightness (brightness);
28
48
FastLED.setCorrection (led_color_correction);
@@ -42,75 +62,35 @@ void LED::dynamicBrightness(u16 mah)
42
62
FastLED.setMaxPowerInVoltsAndMilliamps (5 ,mah);
43
63
}
44
64
45
- void LED::fill (u32 WRGB, bool overlay /* = false */ )
65
+ void LED::fill (u32 WRGB)
46
66
{
47
- // fill_solid(leds,NUM_TOTAL_LEDS,CRGB::Black);
48
- for (int i = 0 ; i < NUM_LEDS; i++)
49
- {
50
- leds[i] = WRGB;
51
- }
52
- // FastLED.show();
67
+ fill_solid (leds[0 ], 128 , WRGB);
68
+ fill_solid (leds[1 ], 128 , WRGB);
69
+ fill_solid (leds[2 ], 128 , WRGB);
70
+ fill_solid (leds[3 ], 128 , WRGB);
53
71
}
54
72
55
- // void LED::setLED(INDEXMODE indexmode, LEDMODE ledmode, u8 xy = 0, u32 p1 = 0, u8 p2 = 0, u8 p3 = 0, u8 p4 = 0)
56
- // {
57
- // u8 index = x;
58
- // if(ledmode == XY)
59
- // u8 index = xyToIndex(xy);
60
- //
61
- // switch (ledmode)
62
- // {
63
- // case off:
64
- // LED::Off(index);
65
- // break;
66
- // case on:
67
- // LED::On(index);
68
- // break;
69
- // case w:
70
- // LED::setW(index, p1);
71
- // break;
72
- // case rgb:
73
- // LED::setRGB(index, p1, p2, p3);
74
- // break;
75
- // case wrgb:
76
- // LED::setWRGB(index, p1, p2, p3, p4);
77
- // break;
78
- // case hex:
79
- // LED::setHEX(index, p1);
80
- // break;
81
- // case palette:
82
- // LED::setPalette(index, p1, p2);
83
- // break;
84
- // }
85
- // }
86
-
87
- // Index
88
- void LED::off (s16 index, bool overlay /* = false*/ )
73
+ void LED::off (u8 channel, s16 index)
89
74
{
90
- LED::setHEX (index , 0 , overlay );
75
+ LED::setHEX (channel, index , 0 );
91
76
}
92
77
93
- void LED::on (s16 index, bool overlay /* = false */ )
78
+ void LED::on (u8 channel, s16 index )
94
79
{
95
- LED::setHEX (index , 0xFFFFFFFF , overlay );
80
+ LED::setHEX (channel, index , 0xFFFFFFFF );
96
81
}
97
82
98
- void LED::setW (s16 index, u8 w, bool overlay /* = false */ )
83
+ void LED::setW (u8 channel, s16 index, u8 w)
99
84
{
100
- LED::setHEX (index , w * 0x10000 + w * 0x100 + w, overlay );
85
+ LED::setHEX (channel, index , w * 0x10000 + w * 0x100 + w);
101
86
}
102
87
103
- void LED::setRGB (s16 index, u8 r, u8 g, u8 b, bool overlay /* = false */ )
88
+ void LED::setRGB (u8 channel, s16 index, u8 r, u8 g, u8 b)
104
89
{
105
- LED::setHEX (index , r * 0x10000 + g * 0x100 + b, overlay );
90
+ LED::setHEX (channel, index , r * 0x10000 + g * 0x100 + b);
106
91
}
107
92
108
- void LED::setWRGB (s16 index, u8 w, u8 r, u8 g, u8 b, bool overlay /* = false*/ )
109
- {
110
- LED::setHEX (index , w * 0x1000000 + r * 0x10000 + g * 0x100 + b, overlay);
111
- }
112
-
113
- void LED::setHEX (s16 index, u32 hex, bool overlay /* = false*/ , bool ignore_gamma /* = false*/ )
93
+ void LED::setHEX (u8 channel, s16 index, u32 hex)
114
94
{
115
95
#ifdef DEBUG
116
96
CompositeSerial.print (" LED Index \t " );
@@ -122,12 +102,12 @@ void LED::setHEX(s16 index, u32 hex, bool overlay /*= false*/, bool ignore_gamma
122
102
if (index < 0 )
123
103
return ;
124
104
125
- leds[index ] = hex;
105
+ leds[channel][ index ] = hex;
126
106
}
127
107
128
- void LED::setPalette (s16 index, u8 pick_palette, u8 colour, bool overlay /* = false */ )
108
+ void LED::setPalette (u8 channel, s16 index, u8 pick_palette, u8 colour)
129
109
{
130
- LED::setHEX (index , palette[pick_palette][colour], overlay, true );
110
+ LED::setHEX (channel, index , palette[pick_palette][colour]);
131
111
}
132
112
133
113
@@ -137,3 +117,18 @@ void LED::update()
137
117
{
138
118
FastLED.show ();
139
119
}
120
+
121
+ void LED::rainbow ()
122
+ {
123
+ for (int h = 0 ; h < 256 ; h += 5 )
124
+ {
125
+ fill_rainbow (leds[0 ], NUM_LEDS, h, 5 );
126
+ fill_rainbow (leds[1 ], NUM_LEDS, h, 5 );
127
+ fill_rainbow (leds[2 ], NUM_LEDS, h, 5 );
128
+ fill_rainbow (leds[3 ], NUM_LEDS, h, 5 );
129
+ LED::update ();
130
+ delay (10 );
131
+ }
132
+ LED::fill (0 );
133
+ LED::update ();
134
+ }
0 commit comments