x
PCA9745B.h@0:0f53e5add603, 2018-07-23 (annotated)
- Committer:
- JackB
- Date:
- Mon Jul 23 12:25:17 2018 +0000
- Revision:
- 0:0f53e5add603
PCA9745
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JackB | 0:0f53e5add603 | 1 | #ifndef PCA9745B_H |
JackB | 0:0f53e5add603 | 2 | #define PCA9745B_H |
JackB | 0:0f53e5add603 | 3 | |
JackB | 0:0f53e5add603 | 4 | /** |
JackB | 0:0f53e5add603 | 5 | * SPI speed used by the mbed to communicate with the PCA9745B |
JackB | 0:0f53e5add603 | 6 | * The PCA9745B supports up to 10Mhz. |
JackB | 0:0f53e5add603 | 7 | */ |
JackB | 0:0f53e5add603 | 8 | #define SPI_SPEED 1000000 |
JackB | 0:0f53e5add603 | 9 | |
JackB | 0:0f53e5add603 | 10 | /** |
JackB | 0:0f53e5add603 | 11 | * Using the TLC5 class to control an LED: |
JackB | 0:0f53e5add603 | 12 | * @code |
JackB | 0:0f53e5add603 | 13 | * #include "mbed.h" |
JackB | 0:0f53e5add603 | 14 | * #include "PCA9745B.h" |
JackB | 0:0f53e5add603 | 15 | * |
JackB | 0:0f53e5add603 | 16 | * // Create the TLC5711 instance |
JackB | 0:0f53e5add603 | 17 | * PCA9745B tlc(1, p7, p5); |
JackB | 0:0f53e5add603 | 18 | * |
JackB | 0:0f53e5add603 | 19 | * int main() |
JackB | 0:0f53e5add603 | 20 | * { |
JackB | 0:0f53e5add603 | 21 | * |
JackB | 0:0f53e5add603 | 22 | * while(1) |
JackB | 0:0f53e5add603 | 23 | * { |
JackB | 0:0f53e5add603 | 24 | * // Led1 -> R0 |
JackB | 0:0f53e5add603 | 25 | * tlc.setLED(0, 65535, 0, 0); |
JackB | 0:0f53e5add603 | 26 | * tlc.write( ); |
JackB | 0:0f53e5add603 | 27 | * tlc.setLED(1, 0, 0, 0); |
JackB | 0:0f53e5add603 | 28 | * tlc.write( ); |
JackB | 0:0f53e5add603 | 29 | * tlc.setLED(2, 0, 0, 0); |
JackB | 0:0f53e5add603 | 30 | * tlc.write( ); |
JackB | 0:0f53e5add603 | 31 | * tlc.setLED(3, 0, 0, 0); |
JackB | 0:0f53e5add603 | 32 | * tlc.write( ); |
JackB | 0:0f53e5add603 | 33 | * wait( 1 ); |
JackB | 0:0f53e5add603 | 34 | * |
JackB | 0:0f53e5add603 | 35 | * } |
JackB | 0:0f53e5add603 | 36 | * } |
JackB | 0:0f53e5add603 | 37 | * @endcode |
JackB | 0:0f53e5add603 | 38 | */ |
JackB | 0:0f53e5add603 | 39 | |
JackB | 0:0f53e5add603 | 40 | class PCA9745B |
JackB | 0:0f53e5add603 | 41 | { |
JackB | 0:0f53e5add603 | 42 | |
JackB | 0:0f53e5add603 | 43 | public:/** |
JackB | 0:0f53e5add603 | 44 | * Set up the PCA9745B |
JackB | 0:0f53e5add603 | 45 | * @param SCLK - The SCK pin of the SPI bus |
JackB | 0:0f53e5add603 | 46 | * @param MOSI - The MOSI pin of the SPI bus |
JackB | 0:0f53e5add603 | 47 | * @param number - The number of PCA9745Bs |
JackB | 0:0f53e5add603 | 48 | */ |
JackB | 0:0f53e5add603 | 49 | |
JackB | 0:0f53e5add603 | 50 | PCA9745B(uint8_t number, PinName SCLK, PinName MOSI); |
JackB | 0:0f53e5add603 | 51 | |
JackB | 0:0f53e5add603 | 52 | void setPWM(uint8_t chan, uint16_t pwm); |
JackB | 0:0f53e5add603 | 53 | void setLED(uint8_t lednum, uint16_t r, uint16_t g, uint16_t b); |
JackB | 0:0f53e5add603 | 54 | void write(void); |
JackB | 0:0f53e5add603 | 55 | |
JackB | 0:0f53e5add603 | 56 | uint8_t n; |
JackB | 0:0f53e5add603 | 57 | |
JackB | 0:0f53e5add603 | 58 | private: |
JackB | 0:0f53e5add603 | 59 | |
JackB | 0:0f53e5add603 | 60 | SPI spi; |
JackB | 0:0f53e5add603 | 61 | |
JackB | 0:0f53e5add603 | 62 | uint16_t *pwmbuffer; |
JackB | 0:0f53e5add603 | 63 | |
JackB | 0:0f53e5add603 | 64 | uint8_t BCr, BCg, BCb; |
JackB | 0:0f53e5add603 | 65 | int8_t numdrivers; |
JackB | 0:0f53e5add603 | 66 | |
JackB | 0:0f53e5add603 | 67 | }; |
JackB | 0:0f53e5add603 | 68 | |
JackB | 0:0f53e5add603 | 69 | #endif |