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
PCA9634.h@1:40bdbe1a93b7, 2018-06-22 (annotated)
- Committer:
- Knillinux
- Date:
- Fri Jun 22 02:09:50 2018 +0000
- Revision:
- 1:40bdbe1a93b7
Updates
Who changed what in which revision?
| User | Revision | Line number | New 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 |