Subversion Repositories Code-Repo

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
260 Kevin 1
#include "defines.h"
2
#include "TLC59116.h"
3
#include "I2C2.h"
4
 
5
void TLC59116_Init(void) {
6
    uint8_t buffer[25];
7
 
8
    buffer[0] = TLC59116_AUTO_INCR_ALL | 0x00; // Register Select
9
    buffer[1] = TLC59116_AUTO_INCR_ALL | 0x00; // MODE1
10
    buffer[2] = 0x00;   // MODE2
11
    buffer[3] = 0x00;   // PWM0
12
    buffer[4] = 0x00;   // PWM1
13
    buffer[5] = 0x00;   // PWM2
14
    buffer[6] = 0x00;   // PWM3
15
    buffer[7] = 0x00;   // PWM4
16
    buffer[8] = 0x00;   // PWM5
17
    buffer[9] = 0x00;   // PWM6
18
    buffer[10] = 0x00;  // PWM7
19
    buffer[11] = 0x00;  // PWM8
20
    buffer[12] = 0x00;  // PWM9
21
    buffer[13] = 0x00;  // PWM10
22
    buffer[14] = 0x00;  // PWM11
23
    buffer[15] = 0x00;  // PWM12
24
    buffer[16] = 0x00;  // PWM13
25
    buffer[17] = 0x00;  // PWM14
26
    buffer[18] = 0x00;  // PWM15
27
    buffer[19] = 0xFF;  // GRPPWM (maximum brightness)
28
    buffer[20] = 0x00;  // GRPFREQ (not used)
29
    buffer[21] = 0xFF;  // LEDOUT0 (brightness and group dimming enabled)
30
    buffer[22] = 0xFF;  // LEDOUT1
31
    buffer[23] = 0xFF;  // LEDOUT2
32
    buffer[24] = 0xFF;  // LEDOUT3
33
 
34
    I2C2_Master_Send(TLC59116_ADDR, 25, buffer);
35
    uint8_t result;
36
    do {
37
        result = I2C2_Get_Status();
38
    } while (!result);
39
}
40
 
270 Kevin 41
//void TLC59116_Write(uint8_t led, uint8_t brightness) {
42
//    uint8_t buffer[2];
43
//
44
//    buffer[0] = led + 0x02;    // Register Select
45
//    buffer[1] = brightness;
46
//
47
//    I2C2_Master_Send(TLC59116_ADDR, 2, buffer);
48
//    uint8_t result;
49
//    do {
50
//        result = I2C2_Get_Status();
51
//    } while (!result);
52
//}
260 Kevin 53
 
270 Kevin 54
void TLC59116_Write_All(LED_VALUES *values) {
260 Kevin 55
    uint8_t buffer[17];
56
 
270 Kevin 57
    buffer[0] = TLC59116_AUTO_INCR_ALL | TLC59116_REG_PWM0; // Register Select
58
    buffer[1] = values->w[0];
59
    buffer[2] = values->w[1];
60
    buffer[3] = values->w[2];
61
    buffer[4] = values->w[3];
62
    buffer[5] = values->w[4];
63
    buffer[6] = values->w[5];
64
    buffer[7] = values->w[6];
65
    buffer[8] = values->w[7];
66
    buffer[9] = values->w[8];
67
    buffer[10] = values->w[9];
68
    buffer[11] = values->w[10];
69
    buffer[12] = values->w[11];
70
    buffer[13] = values->w[12];
71
    buffer[14] = values->w[13];
72
    buffer[15] = values->w[14];
73
    buffer[16] = values->w[15];
260 Kevin 74
 
75
    I2C2_Master_Send(TLC59116_ADDR, 17, buffer);
76
    uint8_t result;
77
    do {
78
        result = I2C2_Get_Status();
79
    } while (!result);
80
}
81
 
82
void TLC59116_Write_BC(uint8_t brightness) {
83
    uint8_t buffer[2];
84
 
85
    buffer[0] = TLC59116_REG_GRPPWM;    // Register Select
86
    buffer[1] = brightness;
87
 
88
    I2C2_Master_Send(TLC59116_ADDR, 2, buffer);
89
    uint8_t result;
90
    do {
91
        result = I2C2_Get_Status();
92
    } while (!result);
93
}