21
21
#include "i2c_master.h"
22
22
#include "wait.h"
23
23
24
- #define IS31FL3731_REG_CONFIG 0x00
25
- #define IS31FL3731_REG_CONFIG_PICTUREMODE 0x00
26
- #define IS31FL3731_REG_CONFIG_AUTOPLAYMODE 0x08
27
- #define IS31FL3731_REG_CONFIG_AUDIOPLAYMODE 0x18
28
-
29
- #define IS31FL3731_CONF_PICTUREMODE 0x00
30
- #define IS31FL3731_CONF_AUTOFRAMEMODE 0x04
31
- #define IS31FL3731_CONF_AUDIOMODE 0x08
32
-
33
- #define IS31FL3731_REG_PICTUREFRAME 0x01
34
-
35
- // Not defined in the datasheet -- See AN for IC
36
- #define IS31FL3731_REG_GHOST_IMAGE_PREVENTION 0xC2 // Set bit 4 to enable de-ghosting
37
-
38
- #define IS31FL3731_REG_SHUTDOWN 0x0A
39
- #define IS31FL3731_REG_AUDIOSYNC 0x06
40
-
41
- #define IS31FL3731_COMMANDREGISTER 0xFD
42
- #define IS31FL3731_BANK_FUNCTIONREG 0x0B // helpfully called 'page nine'
43
-
44
24
#define IS31FL3731_PWM_REGISTER_COUNT 144
45
25
#define IS31FL3731_LED_CONTROL_REGISTER_COUNT 18
46
26
@@ -141,26 +121,26 @@ void is31fl3731_init(uint8_t addr) {
141
121
// then disable software shutdown.
142
122
143
123
// select "function register" bank
144
- is31fl3731_write_register (addr , IS31FL3731_COMMANDREGISTER , IS31FL3731_BANK_FUNCTIONREG );
124
+ is31fl3731_write_register (addr , IS31FL3731_REG_COMMAND , IS31FL3731_COMMAND_FUNCTION );
145
125
146
126
// enable software shutdown
147
- is31fl3731_write_register (addr , IS31FL3731_REG_SHUTDOWN , 0x00 );
127
+ is31fl3731_write_register (addr , IS31FL3731_FUNCTION_REG_SHUTDOWN , 0x00 );
148
128
#ifdef IS31FL3731_DEGHOST // set to enable de-ghosting of the array
149
- is31fl3731_write_register (addr , IS31FL3731_REG_GHOST_IMAGE_PREVENTION , 0x10 );
129
+ is31fl3731_write_register (addr , IS31FL3731_FUNCTION_REG_GHOST_IMAGE_PREVENTION , IS31FL3731_GHOST_IMAGE_PREVENTION_GEN );
150
130
#endif
151
131
152
132
// this delay was copied from other drivers, might not be needed
153
133
wait_ms (10 );
154
134
155
135
// picture mode
156
- is31fl3731_write_register (addr , IS31FL3731_REG_CONFIG , IS31FL3731_REG_CONFIG_PICTUREMODE );
136
+ is31fl3731_write_register (addr , IS31FL3731_FUNCTION_REG_CONFIG , IS31FL3731_CONFIG_MODE_PICTURE );
157
137
// display frame 0
158
- is31fl3731_write_register (addr , IS31FL3731_REG_PICTUREFRAME , 0x00 );
138
+ is31fl3731_write_register (addr , IS31FL3731_FUNCTION_REG_PICTURE_DISPLAY , 0x00 );
159
139
// audio sync off
160
- is31fl3731_write_register (addr , IS31FL3731_REG_AUDIOSYNC , 0x00 );
140
+ is31fl3731_write_register (addr , IS31FL3731_FUNCTION_REG_AUDIO_SYNC , 0x00 );
161
141
162
142
// select bank 0
163
- is31fl3731_write_register (addr , IS31FL3731_COMMANDREGISTER , 0 );
143
+ is31fl3731_write_register (addr , IS31FL3731_REG_COMMAND , IS31FL3731_COMMAND_FRAME_1 );
164
144
165
145
// turn off all LEDs in the LED control register
166
146
for (int i = 0 ; i < IS31FL3731_LED_CONTROL_REGISTER_COUNT ; i ++ ) {
@@ -178,15 +158,15 @@ void is31fl3731_init(uint8_t addr) {
178
158
}
179
159
180
160
// select "function register" bank
181
- is31fl3731_write_register (addr , IS31FL3731_COMMANDREGISTER , IS31FL3731_BANK_FUNCTIONREG );
161
+ is31fl3731_write_register (addr , IS31FL3731_REG_COMMAND , IS31FL3731_COMMAND_FUNCTION );
182
162
183
163
// disable software shutdown
184
- is31fl3731_write_register (addr , IS31FL3731_REG_SHUTDOWN , 0x01 );
164
+ is31fl3731_write_register (addr , IS31FL3731_FUNCTION_REG_SHUTDOWN , 0x01 );
185
165
186
166
// select bank 0 and leave it selected.
187
167
// most usage after initialization is just writing PWM buffers in bank 0
188
168
// as there's not much point in double-buffering
189
- is31fl3731_write_register (addr , IS31FL3731_COMMANDREGISTER , 0 );
169
+ is31fl3731_write_register (addr , IS31FL3731_REG_COMMAND , IS31FL3731_COMMAND_FRAME_1 );
190
170
}
191
171
192
172
void is31fl3731_set_color (int index , uint8_t red , uint8_t green , uint8_t blue ) {
0 commit comments