x

Dependents:   20180621_FT813

Committer:
JackB
Date:
Mon Jul 23 12:25:17 2018 +0000
Revision:
0:0f53e5add603
PCA9745

Who changed what in which revision?

UserRevisionLine numberNew 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