modm API documentation
|
MAX6966 10-channel, daisy-chainable, constant-current sink, 8bit PWM LED driver. More...
#include <modm/driver/pwm/max6966.hpp>
Public Types | |
enum | Register { REGISTER_PORT0 = 0x00, REGISTER_PORT1 = 0x01, REGISTER_PORT2 = 0x02, REGISTER_PORT3 = 0x03, REGISTER_PORT4 = 0x04, REGISTER_PORT5 = 0x05, REGISTER_PORT6 = 0x06, REGISTER_PORT7 = 0x07, REGISTER_PORT8 = 0x08, REGISTER_PORT9 = 0x09, REGISTER_PORT0_9 = 0x0A, REGISTER_PORT0_3 = 0x0B, REGISTER_PORT4_7 = 0x0C, REGISTER_PORT8_9 = 0x0D, REGISTER_READ_PORT7_0 = 0x0E, REGISTER_READ_PORT9_8 = 0x0F, REGISTER_CONFIGURATION = 0x10, REGISTER_RAMP_UP = 0x11, REGISTER_RAMP_DOWN = 0x12, REGISTER_CURRENT7_0 = 0x13, REGISTER_CURRENT9_8 = 0x14, REGISTER_GLOBAL_CURRENT = 0x15, REGISTER_NO_OP = 0x20 } |
enum | Config { CONFIG_RUN_MODE = 0x01, CONFIG_CS_RUN = 0x02, CONFIG_RAMP_UP = 0x04, CONFIG_FADE_OFF = 0x08, CONFIG_HOLD_OFF = 0x10, CONFIG_PWM_STAGGER = 0x20, CONFIG_DOUT_OSC = 0x80 } |
enum | Time { TIME_OFF = 0x00, TIME_1_16s = 0x01, TIME_1_8s = 0x02, TIME_1_4s = 0x03, TIME_1_2s = 0x04, TIME_1s = 0x05, TIME_2s = 0x06, TIME_4s = 0x07 } |
enum | Current { CURRENT_2_5mA = 0x00, CURRENT_5mA = 0x01, CURRENT_7_5mA = 0x02, CURRENT_10mA = 0x03, CURRENT_12_5mA = 0x04, CURRENT_15mA = 0x05, CURRENT_17_5mA = 0x06, CURRENT_20mA = 0x07 } |
enum | Brightness { ON = 0xfe, OFF = 0xff, MIN = 0x03 } |
None-intuitive correspondence between PWM value and brightness. | |
Static Public Member Functions | |
static void | initialize (max6966::Current current, uint8_t config=0) |
static void | setConfiguration (uint8_t config, uint8_t driver=0) |
configure the Chip | |
static void | setAllConfiguration (uint8_t config) |
configure the Chip | |
static uint8_t | getConfiguration (uint8_t driver=0) |
get Chip configuration | |
static void | setRampUpTime (max6966::Time time=max6966::TIME_1s, uint8_t driver=0) |
configure the ramp up time | |
static void | setHoldTime (max6966::Time time=max6966::TIME_1s, uint8_t driver=0) |
configure the hold time | |
static void | setRampDownTime (max6966::Time time=max6966::TIME_1s, uint8_t driver=0) |
configure the ramp down time | |
static void | setChannel (uint16_t channel, uint8_t value) |
set the 8bit value of a single channel | |
static void | setChannelIntensity (uint16_t channel, uint8_t intensity) |
set the intensity of a single channel | |
static void | setChannels (uint8_t *values) |
static void | setChannelsIntensity (uint8_t *intensity) |
static void | setAllChannels (uint8_t value) |
static void | setAllChannelsIntensity (uint8_t value) |
static uint8_t | getChannel (uint16_t channel) |
get the 8bit value of a channel from the chip | |
static void | setHalfCurrent (uint16_t channel, bool full=true) |
static void | setCurrent (max6966::Current current, uint8_t driver=0) |
set peak current of one driver | |
static void | setAllCurrent (max6966::Current current) |
set peak current of all drivers | |
Static Public Attributes | |
static const uint8_t | WRITE = 0x00 |
static const uint8_t | READ = 0x80 |
Static Protected Member Functions | |
static void | writeToDriver (uint8_t driver, max6966::Register reg, uint8_t data) |
static uint8_t | readFromDriver (uint8_t driver, max6966::Register reg) |
static void | writeToDriverMasked (uint8_t driver, max6966::Register reg, uint8_t data, uint8_t mask) |
static uint8_t | intensityToPwm (uint8_t intensity) |
MAX6966 10-channel, daisy-chainable, constant-current sink, 8bit PWM LED driver.
|
static |
current | Set the global current |
config | Enable Data Output, disable external Clock Input |
|
inlinestaticprotected |
Fix the stupid PWM values of MAX6966
|
static |
value | the 8bit value of all channels (same value for all channels) |
|
static |
More efficient version to set all channels differently Avoids writing NO_OPS. Sets the same channels of all drivers at the same time.
values | array with all pwm values for all channels and drivers. |