Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed ros_lib_kinetic
Diff: PCA9634.h
- Revision:
- 1:40bdbe1a93b7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/PCA9634.h Fri Jun 22 02:09:50 2018 +0000
@@ -0,0 +1,71 @@
+#ifndef PCA9634_H
+#define PCA9634_H
+
+
+#define PCA9634_REG_MODE1 0x00 // Mode register 1
+#define PCA9634_REG_MODE2 0x01 // Mode register 2
+#define PCA9634_REG_PWM0 0x02 // brightness control LED0
+#define PCA9634_REG_PWM1 0x03 // brightness control LED1
+#define PCA9634_REG_PWM2 0x04 // brightness control LED2
+#define PCA9634_REG_PWM3 0x05 // brightness control LED3
+#define PCA9634_REG_PWM4 0x06 // brightness control LED4
+#define PCA9634_REG_PWM5 0x07 // brightness control LED5
+#define PCA9634_REG_PWM6 0x08 // brightness control LED6
+#define PCA9634_REG_PWM7 0x09 // brightness control LED7
+#define PCA9634_REG_GRPPWM 0x0A // group duty cycle
+#define PCA9634_REG_GRPFREQ 0x0B // group frequency
+#define PCA9634_REG_LEDOUT0 0x0C // LED output state 0
+#define PCA9634_REG_LEDOUT1 0x0D // LED output state 1
+#define PCA9634_REG_SUBADR1 0x0E // I2C-bus subaddress 1
+#define PCA9634_REG_SUBADR2 0x0F // I2C-bus subaddress 2
+#define PCA9634_REG_SUBADR3 0x10 // I2C-bus subaddress 3
+#define PCA9634_REG_ALLCALLADR 0x11 // LED All I2C-bus address
+
+#define PCA9634_ALL_LED_TO_OFF 0x00
+#define PCA9634_ALL_LED_TO_ON 0x55
+#define PCA9634_ALL_LED_TO_PWM 0xAA
+#define PCA9634_ALL_LED_TO_GRPPWM 0xFF
+
+#define ADDRESS_HI 0x12
+#define ADDRESS_LO 0x34
+
+#define PCA9634_ERROR_INVALID_LED -1
+
+#include "mbed.h"
+
+enum ledID {
+ PCA_LED0 = PCA9634_REG_PWM0,
+ PCA_LED1 = PCA9634_REG_PWM1,
+ PCA_LED2 = PCA9634_REG_PWM2,
+ PCA_LED3 = PCA9634_REG_PWM3,
+ PCA_LED4 = PCA9634_REG_PWM4,
+ PCA_LED5 = PCA9634_REG_PWM5,
+ PCA_LED6 = PCA9634_REG_PWM6,
+ PCA_LED7 = PCA9634_REG_PWM7
+};
+
+class PCA9634
+{
+ public:
+
+ PCA9634(I2C *i2c, DigitalOut *inv_out_en, int addr);
+
+ void init();
+ void enableLED(ledID led);
+ void disableLED(ledID led);
+ void dimLEDs();
+ void commandLEDOutState();
+ void commandLEDBrightness(ledID led, int brightness);
+
+ private:
+ I2C *i2c_;
+ DigitalOut *inv_out_en_;
+
+ char led_out_state_[2];
+
+ int addr_;
+
+ int writeReg(char reg, char cmd);
+};
+
+#endif
\ No newline at end of file