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.
Dependents: PCA9626_Hello PCA9624_Hello PCA9622_Hello
PCA9624/PCA9624.cpp@3:40f83904f0a8, 2015-03-04 (annotated)
- Committer:
- nxp_ip
- Date:
- Wed Mar 04 05:59:40 2015 +0000
- Revision:
- 3:40f83904f0a8
- Parent:
- 0:7a206e6db594
API of "LedPwmOut class" implemented
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| nxp_ip | 0:7a206e6db594 | 1 | #include "mbed.h" |
| nxp_ip | 0:7a206e6db594 | 2 | #include "PCA9624.h" |
| nxp_ip | 0:7a206e6db594 | 3 | |
| nxp_ip | 0:7a206e6db594 | 4 | PCA9624::PCA9624( PinName i2c_sda, PinName i2c_scl, char i2c_address ) |
| nxp_ip | 0:7a206e6db594 | 5 | : PCA962x( i2c_sda, i2c_scl, i2c_address ), n_of_ports( 8 ) |
| nxp_ip | 0:7a206e6db594 | 6 | { |
| nxp_ip | 0:7a206e6db594 | 7 | initialize(); |
| nxp_ip | 0:7a206e6db594 | 8 | } |
| nxp_ip | 0:7a206e6db594 | 9 | |
| nxp_ip | 0:7a206e6db594 | 10 | PCA9624::PCA9624( I2C &i2c_obj, char i2c_address ) |
| nxp_ip | 0:7a206e6db594 | 11 | : PCA962x( i2c_obj, i2c_address ), n_of_ports( 8 ) |
| nxp_ip | 0:7a206e6db594 | 12 | { |
| nxp_ip | 0:7a206e6db594 | 13 | initialize(); |
| nxp_ip | 0:7a206e6db594 | 14 | } |
| nxp_ip | 0:7a206e6db594 | 15 | |
| nxp_ip | 0:7a206e6db594 | 16 | PCA9624::~PCA9624() |
| nxp_ip | 0:7a206e6db594 | 17 | { |
| nxp_ip | 0:7a206e6db594 | 18 | } |
| nxp_ip | 0:7a206e6db594 | 19 | |
| nxp_ip | 0:7a206e6db594 | 20 | void PCA9624::initialize( void ) |
| nxp_ip | 0:7a206e6db594 | 21 | { |
| nxp_ip | 0:7a206e6db594 | 22 | char init_array0[] = { |
| nxp_ip | 0:7a206e6db594 | 23 | PCA962x::AUTO_INCREMENT | REGISTER_START, // Command |
| nxp_ip | 3:40f83904f0a8 | 24 | 0x01, 0x00, // MODE1, MODE2 |
| nxp_ip | 0:7a206e6db594 | 25 | }; |
| nxp_ip | 0:7a206e6db594 | 26 | char init_array1[] = { |
| nxp_ip | 0:7a206e6db594 | 27 | PCA962x::AUTO_INCREMENT | LEDOUT_REGISTER_START, // Command |
| nxp_ip | 0:7a206e6db594 | 28 | 0xAA, 0xAA, // LEDOUT[1:0] |
| nxp_ip | 0:7a206e6db594 | 29 | }; |
| nxp_ip | 0:7a206e6db594 | 30 | |
| nxp_ip | 0:7a206e6db594 | 31 | write( init_array0, sizeof( init_array0 ) ); |
| nxp_ip | 0:7a206e6db594 | 32 | write( init_array1, sizeof( init_array1 ) ); |
| nxp_ip | 0:7a206e6db594 | 33 | } |
| nxp_ip | 0:7a206e6db594 | 34 | |
| nxp_ip | 0:7a206e6db594 | 35 | char PCA9624::pwm_register_access( int port ) |
| nxp_ip | 0:7a206e6db594 | 36 | { |
| nxp_ip | 0:7a206e6db594 | 37 | if ( port < n_of_ports ) |
| nxp_ip | 0:7a206e6db594 | 38 | return ( PWM_REGISTER_START + port ); |
| nxp_ip | 0:7a206e6db594 | 39 | |
| nxp_ip | 0:7a206e6db594 | 40 | return ( PWMALL ); |
| nxp_ip | 0:7a206e6db594 | 41 | } |
| nxp_ip | 0:7a206e6db594 | 42 | |
| nxp_ip | 0:7a206e6db594 | 43 | int PCA9624::number_of_ports( void ) |
| nxp_ip | 0:7a206e6db594 | 44 | { |
| nxp_ip | 0:7a206e6db594 | 45 | return ( n_of_ports ); |
| nxp_ip | 0:7a206e6db594 | 46 | } |
PCA9622, PCA9624, PCA9626 : 8, 16 & 24ch LED driver (Voltage switch type)