Alison Bartsch / Mbed 2 deprecated FreeFlyerROS

Dependencies:   mbed ros_lib_kinetic

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PCA9634.h Source File

PCA9634.h

00001 #ifndef PCA9634_H
00002 #define PCA9634_H
00003 
00004 
00005 #define PCA9634_REG_MODE1       0x00        // Mode register 1
00006 #define PCA9634_REG_MODE2       0x01        // Mode register 2
00007 #define PCA9634_REG_PWM0        0x02        // brightness control LED0
00008 #define PCA9634_REG_PWM1        0x03        // brightness control LED1
00009 #define PCA9634_REG_PWM2        0x04        // brightness control LED2
00010 #define PCA9634_REG_PWM3        0x05        // brightness control LED3
00011 #define PCA9634_REG_PWM4        0x06        // brightness control LED4
00012 #define PCA9634_REG_PWM5        0x07        // brightness control LED5
00013 #define PCA9634_REG_PWM6        0x08        // brightness control LED6
00014 #define PCA9634_REG_PWM7        0x09        // brightness control LED7
00015 #define PCA9634_REG_GRPPWM      0x0A        // group duty cycle
00016 #define PCA9634_REG_GRPFREQ     0x0B        // group frequency
00017 #define PCA9634_REG_LEDOUT0     0x0C        // LED output state 0
00018 #define PCA9634_REG_LEDOUT1     0x0D        // LED output state 1
00019 #define PCA9634_REG_SUBADR1     0x0E        // I2C-bus subaddress 1
00020 #define PCA9634_REG_SUBADR2     0x0F        // I2C-bus subaddress 2
00021 #define PCA9634_REG_SUBADR3     0x10        // I2C-bus subaddress 3
00022 #define PCA9634_REG_ALLCALLADR  0x11        // LED All I2C-bus address
00023 
00024 #define PCA9634_ALL_LED_TO_OFF              0x00
00025 #define PCA9634_ALL_LED_TO_ON               0x55
00026 #define PCA9634_ALL_LED_TO_PWM              0xAA
00027 #define PCA9634_ALL_LED_TO_GRPPWM           0xFF
00028 
00029 #define ADDRESS_HI                          0x12
00030 #define ADDRESS_LO                          0x34
00031 
00032 #define PCA9634_ERROR_INVALID_LED           -1
00033 
00034 #include "mbed.h"
00035 
00036 enum ledID {
00037     PCA_LED0 = PCA9634_REG_PWM0,
00038     PCA_LED1 = PCA9634_REG_PWM1,
00039     PCA_LED2 = PCA9634_REG_PWM2,
00040     PCA_LED3 = PCA9634_REG_PWM3,
00041     PCA_LED4 = PCA9634_REG_PWM4,
00042     PCA_LED5 = PCA9634_REG_PWM5,
00043     PCA_LED6 = PCA9634_REG_PWM6,
00044     PCA_LED7 = PCA9634_REG_PWM7
00045 };
00046 
00047 class PCA9634
00048 {
00049     public:
00050         
00051         PCA9634(I2C *i2c, DigitalOut *inv_out_en, int addr);
00052 
00053         void init();
00054         void enableLED(ledID led);
00055         void disableLED(ledID led);
00056         void dimLEDs();
00057         void commandLEDOutState();
00058         void commandLEDBrightness(ledID led, int brightness);
00059 
00060     private:
00061         I2C *i2c_;
00062         DigitalOut *inv_out_en_;
00063         
00064         char led_out_state_[2];
00065         
00066         int addr_;
00067         
00068         int writeReg(char reg, char cmd);
00069 };
00070 
00071 #endif