#include "stdbool.h"
#include "periph/i2c.h"
#include "pca9633_regs.h"
+ Include dependency graph for pca9633.h:

Go to the source code of this file.

Data Structures

struct  pca9633_params_t
 PCA9633 device initialization parameters. More...
 
struct  pca9633_t
 PCA9633 PWM device data structure type. More...
 

Macros

#define PCA9633_BLINKING_PERIOD_MAX_MS   (10625)
 Blinking period with a maximum duration of ~10.73 s.
 
#define PCA9633_BLINKING_RATIO_BALANCED   128
 Ration between on/ off in blinking mode is balanced. More...
 

Enumerations

enum  { PCA9633_OK = 0, PCA9633_ERROR_I2C = 1 }
 PCA9633 driver error codes. More...
 
enum  pca9633_pwm_channel_t { PCA9633_PWM_CHANNEL_0 = PCA9633_REG_PWM0, PCA9633_PWM_CHANNEL_1 = PCA9633_REG_PWM1, PCA9633_PWM_CHANNEL_2 = PCA9633_REG_PWM2, PCA9633_PWM_CHANNEL_3 = PCA9633_REG_PWM3 }
 PCA9633 PWM channel definitions. More...
 
enum  pca9633_ldr_state_t { PCA9633_LDR_STATE_OFF, PCA9633_LDR_STATE_ON, PCA9633_LDR_STATE_IND, PCA9633_LDR_STATE_IND_GRP }
 LED driver output state, LEDOUT (page 14, below table 13) More...
 
enum  pca9633_auto_inc_option_t {
  PCA9633_AI_DISABLED, PCA9633_AI_ALL, PCA9633_AI_IND, PCA9633_AI_GBL,
  PCA9633_AI_IND_GBL
}
 Auto-Increment options (page 10, table 6) More...
 
enum  pca9633_group_control_mode_t { PCA9633_GROUP_CONTROL_MODE_BLINKING, PCA9633_GROUP_CONTROL_MODE_DIMMING }
 PCA9633 group control modes. More...
 

Functions

int pca9633_init (pca9633_t *dev, const pca9633_params_t *params)
 Initialization. More...
 
void pca9633_turn_on (pca9633_t *dev)
 Turn on all LEDs. More...
 
void pca9633_turn_off (pca9633_t *dev)
 Turn off all LEDs. More...
 
void pca9633_wakeup (pca9633_t *dev)
 Switch to normal mode. More...
 
void pca9633_sleep (pca9633_t *dev)
 Switch to low power mode. More...
 
void pca9633_set_pwm (pca9633_t *dev, pca9633_pwm_channel_t pwm_channel, uint8_t pwm)
 Set individual PWM signal for a given channel. More...
 
void pca9633_set_grp_pwm (pca9633_t *dev, uint8_t pwm)
 Set global PWM signal. More...
 
void pca9633_set_blinking (pca9633_t *dev, uint16_t blink_period_ms, uint8_t on_off_ratio)
 Set up values for blinking mode. More...
 
void pca9633_set_rgb (pca9633_t *dev, uint8_t r, uint8_t g, uint8_t b)
 Set PWM values for RGB. More...
 
void pca9633_set_rgba (pca9633_t *dev, uint8_t r, uint8_t g, uint8_t b, uint8_t w)
 Set PWM values for RGBA. More...
 
void pca9633_set_ldr_state (pca9633_t *dev, pca9633_ldr_state_t state, pca9633_pwm_channel_t pwm_channel)
 Set the LED driver output state for a given channel. More...
 
void pca9633_set_ldr_state_all (pca9633_t *dev, pca9633_ldr_state_t state)
 Set the LED driver output state for all channels. More...
 
void pca9633_set_auto_increment (pca9633_t *dev, pca9633_auto_inc_option_t option)
 Set an option for auto increment. More...
 
void pca9633_set_group_control_mode (pca9633_t *dev, pca9633_group_control_mode_t mode)
 Set the group control mode. More...