Developing Library for the MAX7314 I2C 16-bit I/O Expander w/ PWM
Dependencies: mbed PCA9538_Expander
MAX7314.hpp
- Committer:
- uasenden
- Date:
- 2011-04-13
- Revision:
- 0:7e32b01354d3
File content as of revision 0:7e32b01354d3:
/*
MAX7314.hpp
Library include file for the MAX7314 16-bit I/O Expander with PWM
Tom Gambone
Chad Joppeck
Based on code by mBed user: "Ale C.-" / Suky (PCA9538_Expander Library)
4/13/2011 - Initial porting
*/
#include "mbed.h"
enum ExpPinName {
exp_p0=0,
exp_p1,
exp_p2,
exp_p3,
exp_p4,
exp_p5,
exp_p6,
exp_p7,
exp_p8,
exp_p9,
exp_p10,
exp_p11,
exp_p12,
exp_p13,
exp_p14,
exp_p15,
};
//*****************************************************************************
class MAX7314_OutputPin {
public:
MAX7314_OutputPin(ExpPinName Pin,PinName PIN_SDA,PinName PIN_SCL,unsigned char Address);
void vWrite(int value);
int read();
#ifdef MBED_OPERATORS
MAX7314_OutputPin& operator= (int value);
operator int();
#endif
protected:
ExpPinName _Pin;
unsigned char _Address;
I2C Bus;
};
//*****************************************************************************
class MAX7314_InputPin {
public:
MAX7314_InputPin(ExpPinName Pin,PinName PIN_SDA,PinName PIN_SCL,unsigned char Address);
int read();
#ifdef MBED_OPERATORS
operator int();
#endif
protected:
ExpPinName _Pin;
unsigned char _Address;
I2C Bus;
};
//*****************************************************************************
class MAX7314 {
public:
MAX7314(PinName PIN_SDA,PinName PIN_SCL,unsigned char Address,PinName PIN_INT=NC);
void vInit(unsigned char Dir,void (*fptr)(void));
void vSetConfiguration(unsigned char Dir);
void vSetPolarity(unsigned char Pol);
unsigned char cRead(void);
void vWrite(unsigned char Data);
void vEnableSetInterrupt(void (*fptr)(void));
void vDisableInterrupt(void);
bool bReadPinINT(void);
protected:
I2C Bus;
InterruptIn MAX7314_Event;
DigitalIn _PIN_INT;
unsigned char _Address;
};