-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathADA102_RGB.cpp
More file actions
84 lines (69 loc) · 1.38 KB
/
ADA102_RGB.cpp
File metadata and controls
84 lines (69 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/*
* ADA102_RGB.cpp
*
* Created: 10/20/2017
* Author: Troy Condit
*/
#include "ADA102_RGB.h"
ADA102_RGB::ADA102_RGB(Spi_bb spi_port )
: spi_port_(spi_port)
, red_(0)
, green_(0)
, blue_(0)
, brightness_(0)
{
spi_send_color();
}
void ADA102_RGB::rgbb(char red, char green, char blue, char brightness )
{
brightness_= brightness;
red_ = red;
green_ = green;
blue_ = blue;
spi_send_color();
}
void ADA102_RGB::rgb(uint32_t color)
{
red_ = (color >> 16) & 0xFF;
green_ = (color >> 8) & 0xFF;
blue_ = color & 0xFF;
spi_send_color();
}
void ADA102_RGB::brightness(char val) //brightness in the range of 0 31
{
brightness_= val;
spi_send_color();
}
//
void ADA102_RGB::red(char val) //Red level in the range of 0 255
{
red_= val;
spi_send_color();
}
//
void ADA102_RGB::green(char val) //Green level in the range of 0 255
{
green_= val;
spi_send_color();
}
//
void ADA102_RGB::blue(char val) //Green level in the range of 0 255
{
blue_= val;
spi_send_color();
}
//
//
//
void ADA102_RGB::spi_send_color(void)
{
char start_frame[4] = {0,0,0,0};
char end_frame[4] = {0xFF,0xFF,0xFF,0xFF};
char rx[4];
spi_port_.tx(start_frame,rx,4);
spi_port_.tx(0xE0 | brightness_ );//global brightness
spi_port_.tx(blue_);//Blue
spi_port_.tx(green_);//Green
spi_port_.tx(red_);//RED
spi_port_.tx(end_frame,rx,4);
}