irsan julfikar / PCA9535
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PCA9535.h Source File

PCA9535.h

00001 #ifndef PCA9535_H
00002 #define PCA9535_H
00003 
00004 #include "mbed.h"
00005 
00006 #define ADDR 0x40
00007 #define PCA9535_FREQ 100000
00008 class PCA9535
00009 {
00010 public:
00011     /** Name of PCA9535 register **/
00012     enum command_reg
00013     {
00014         InputPort0              = 0x00, /**< InputPort0 register                */
00015         InputPort1,                     /**< InputPort1 register                */
00016         OutoutPort0,                    /**< OutoutPort0 register               */
00017         OutoutPort1,                    /**< OutoutPort1 register               */
00018         PolarityInversionPort0,         /**< PolarityInversionPort0 register    */
00019         PolarityInversionPort1,         /**< PolarityInversionPort1 register    */
00020         ConfigurationPort0,             /**< ConfigurationPort0 register        */
00021         ConfigurationPort1,             /**< ConfigurationPort1 register        */
00022     };
00023     
00024     
00025     typedef enum {
00026         X0_0,           /**< P0_0 pin */
00027         X0_1,           /**< P0_1 pin */
00028         X0_2,           /**< P0_2 pin */
00029         X0_3,           /**< P0_3 pin */
00030         X0_4,           /**< P0_4 pin */
00031         X0_5,           /**< P0_5 pin */
00032         X0_6,           /**< P0_6 pin */
00033         X0_7,           /**< P0_7 pin */
00034         X1_0,           /**< P1_0 pin */
00035         X1_1,           /**< P1_1 pin */
00036         X1_2,           /**< P1_2 pin */
00037         X1_3,           /**< P1_3 pin */
00038         X1_4,           /**< P1_4 pin */
00039         X1_5,           /**< P1_5 pin */
00040         X1_6,           /**< P1_6 pin */
00041         X1_7,           /**< P1_7 pin */
00042         X0  = X0_0,     /**< P0_0 pin */
00043         X1  = X0_1,     /**< P0_1 pin */
00044         X2  = X0_2,     /**< P0_2 pin */
00045         X3  = X0_3,     /**< P0_3 pin */
00046         X4  = X0_4,     /**< P0_4 pin */
00047         X5  = X0_5,     /**< P0_5 pin */
00048         X6  = X0_6,     /**< P0_6 pin */
00049         X7  = X0_7,     /**< P0_7 pin */
00050         X8  = X1_0,     /**< P1_0 pin */
00051         X9  = X1_1,     /**< P1_1 pin */
00052         X10 = X1_2,     /**< P1_2 pin */
00053         X11 = X1_3,     /**< P1_3 pin */
00054         X12 = X1_4,     /**< P1_4 pin */
00055         X13 = X1_5,     /**< P1_5 pin */
00056         X14 = X1_6,     /**< P1_6 pin */
00057         X15 = X1_7,     /**< P1_7 pin */
00058 
00059         X_NC = ~0x0L    /**< for when the pin is left no-connection */
00060     } GpioPinName;
00061     
00062     PCA9535( PinName sda, PinName scl);
00063     ~PCA9535();
00064     
00065     bool configure(char pin1, char pin2);
00066     
00067     bool write(char pin1, char pin2);
00068     
00069     int read();
00070 private:
00071     I2C i2c;
00072     char PCA9535_ADDR;
00073 };
00074 #endif