Developing Library for the MAX7314 I2C 16-bit I/O Expander w/ PWM
Dependencies: mbed PCA9538_Expander
Diff: MAX7314.hpp
- Revision:
- 0:7e32b01354d3
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MAX7314.hpp Wed Apr 13 23:17:22 2011 +0000 @@ -0,0 +1,100 @@ +/* + + 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; +};