Thomas Lew / Mbed 2 deprecated FreeFlyerROS

Dependencies:   mbed ros_lib_kinetic

Committer:
Knillinux
Date:
Fri Jun 22 02:09:50 2018 +0000
Revision:
1:40bdbe1a93b7
Updates

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Knillinux 1:40bdbe1a93b7 1 #ifndef PCA9634_H
Knillinux 1:40bdbe1a93b7 2 #define PCA9634_H
Knillinux 1:40bdbe1a93b7 3
Knillinux 1:40bdbe1a93b7 4
Knillinux 1:40bdbe1a93b7 5 #define PCA9634_REG_MODE1 0x00 // Mode register 1
Knillinux 1:40bdbe1a93b7 6 #define PCA9634_REG_MODE2 0x01 // Mode register 2
Knillinux 1:40bdbe1a93b7 7 #define PCA9634_REG_PWM0 0x02 // brightness control LED0
Knillinux 1:40bdbe1a93b7 8 #define PCA9634_REG_PWM1 0x03 // brightness control LED1
Knillinux 1:40bdbe1a93b7 9 #define PCA9634_REG_PWM2 0x04 // brightness control LED2
Knillinux 1:40bdbe1a93b7 10 #define PCA9634_REG_PWM3 0x05 // brightness control LED3
Knillinux 1:40bdbe1a93b7 11 #define PCA9634_REG_PWM4 0x06 // brightness control LED4
Knillinux 1:40bdbe1a93b7 12 #define PCA9634_REG_PWM5 0x07 // brightness control LED5
Knillinux 1:40bdbe1a93b7 13 #define PCA9634_REG_PWM6 0x08 // brightness control LED6
Knillinux 1:40bdbe1a93b7 14 #define PCA9634_REG_PWM7 0x09 // brightness control LED7
Knillinux 1:40bdbe1a93b7 15 #define PCA9634_REG_GRPPWM 0x0A // group duty cycle
Knillinux 1:40bdbe1a93b7 16 #define PCA9634_REG_GRPFREQ 0x0B // group frequency
Knillinux 1:40bdbe1a93b7 17 #define PCA9634_REG_LEDOUT0 0x0C // LED output state 0
Knillinux 1:40bdbe1a93b7 18 #define PCA9634_REG_LEDOUT1 0x0D // LED output state 1
Knillinux 1:40bdbe1a93b7 19 #define PCA9634_REG_SUBADR1 0x0E // I2C-bus subaddress 1
Knillinux 1:40bdbe1a93b7 20 #define PCA9634_REG_SUBADR2 0x0F // I2C-bus subaddress 2
Knillinux 1:40bdbe1a93b7 21 #define PCA9634_REG_SUBADR3 0x10 // I2C-bus subaddress 3
Knillinux 1:40bdbe1a93b7 22 #define PCA9634_REG_ALLCALLADR 0x11 // LED All I2C-bus address
Knillinux 1:40bdbe1a93b7 23
Knillinux 1:40bdbe1a93b7 24 #define PCA9634_ALL_LED_TO_OFF 0x00
Knillinux 1:40bdbe1a93b7 25 #define PCA9634_ALL_LED_TO_ON 0x55
Knillinux 1:40bdbe1a93b7 26 #define PCA9634_ALL_LED_TO_PWM 0xAA
Knillinux 1:40bdbe1a93b7 27 #define PCA9634_ALL_LED_TO_GRPPWM 0xFF
Knillinux 1:40bdbe1a93b7 28
Knillinux 1:40bdbe1a93b7 29 #define ADDRESS_HI 0x12
Knillinux 1:40bdbe1a93b7 30 #define ADDRESS_LO 0x34
Knillinux 1:40bdbe1a93b7 31
Knillinux 1:40bdbe1a93b7 32 #define PCA9634_ERROR_INVALID_LED -1
Knillinux 1:40bdbe1a93b7 33
Knillinux 1:40bdbe1a93b7 34 #include "mbed.h"
Knillinux 1:40bdbe1a93b7 35
Knillinux 1:40bdbe1a93b7 36 enum ledID {
Knillinux 1:40bdbe1a93b7 37 PCA_LED0 = PCA9634_REG_PWM0,
Knillinux 1:40bdbe1a93b7 38 PCA_LED1 = PCA9634_REG_PWM1,
Knillinux 1:40bdbe1a93b7 39 PCA_LED2 = PCA9634_REG_PWM2,
Knillinux 1:40bdbe1a93b7 40 PCA_LED3 = PCA9634_REG_PWM3,
Knillinux 1:40bdbe1a93b7 41 PCA_LED4 = PCA9634_REG_PWM4,
Knillinux 1:40bdbe1a93b7 42 PCA_LED5 = PCA9634_REG_PWM5,
Knillinux 1:40bdbe1a93b7 43 PCA_LED6 = PCA9634_REG_PWM6,
Knillinux 1:40bdbe1a93b7 44 PCA_LED7 = PCA9634_REG_PWM7
Knillinux 1:40bdbe1a93b7 45 };
Knillinux 1:40bdbe1a93b7 46
Knillinux 1:40bdbe1a93b7 47 class PCA9634
Knillinux 1:40bdbe1a93b7 48 {
Knillinux 1:40bdbe1a93b7 49 public:
Knillinux 1:40bdbe1a93b7 50
Knillinux 1:40bdbe1a93b7 51 PCA9634(I2C *i2c, DigitalOut *inv_out_en, int addr);
Knillinux 1:40bdbe1a93b7 52
Knillinux 1:40bdbe1a93b7 53 void init();
Knillinux 1:40bdbe1a93b7 54 void enableLED(ledID led);
Knillinux 1:40bdbe1a93b7 55 void disableLED(ledID led);
Knillinux 1:40bdbe1a93b7 56 void dimLEDs();
Knillinux 1:40bdbe1a93b7 57 void commandLEDOutState();
Knillinux 1:40bdbe1a93b7 58 void commandLEDBrightness(ledID led, int brightness);
Knillinux 1:40bdbe1a93b7 59
Knillinux 1:40bdbe1a93b7 60 private:
Knillinux 1:40bdbe1a93b7 61 I2C *i2c_;
Knillinux 1:40bdbe1a93b7 62 DigitalOut *inv_out_en_;
Knillinux 1:40bdbe1a93b7 63
Knillinux 1:40bdbe1a93b7 64 char led_out_state_[2];
Knillinux 1:40bdbe1a93b7 65
Knillinux 1:40bdbe1a93b7 66 int addr_;
Knillinux 1:40bdbe1a93b7 67
Knillinux 1:40bdbe1a93b7 68 int writeReg(char reg, char cmd);
Knillinux 1:40bdbe1a93b7 69 };
Knillinux 1:40bdbe1a93b7 70
Knillinux 1:40bdbe1a93b7 71 #endif