Developing Library for the MAX7314 I2C 16-bit I/O Expander w/ PWM

Dependencies:   mbed PCA9538_Expander

Committer:
uasenden
Date:
Wed Apr 13 23:17:22 2011 +0000
Revision:
0:7e32b01354d3
Rev 0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
uasenden 0:7e32b01354d3 1 /*
uasenden 0:7e32b01354d3 2
uasenden 0:7e32b01354d3 3 MAX7314.hpp
uasenden 0:7e32b01354d3 4
uasenden 0:7e32b01354d3 5 Library include file for the MAX7314 16-bit I/O Expander with PWM
uasenden 0:7e32b01354d3 6
uasenden 0:7e32b01354d3 7 Tom Gambone
uasenden 0:7e32b01354d3 8 Chad Joppeck
uasenden 0:7e32b01354d3 9
uasenden 0:7e32b01354d3 10 Based on code by mBed user: "Ale C.-" / Suky (PCA9538_Expander Library)
uasenden 0:7e32b01354d3 11
uasenden 0:7e32b01354d3 12 4/13/2011 - Initial porting
uasenden 0:7e32b01354d3 13
uasenden 0:7e32b01354d3 14 */
uasenden 0:7e32b01354d3 15
uasenden 0:7e32b01354d3 16 #include "mbed.h"
uasenden 0:7e32b01354d3 17
uasenden 0:7e32b01354d3 18 enum ExpPinName {
uasenden 0:7e32b01354d3 19 exp_p0=0,
uasenden 0:7e32b01354d3 20 exp_p1,
uasenden 0:7e32b01354d3 21 exp_p2,
uasenden 0:7e32b01354d3 22 exp_p3,
uasenden 0:7e32b01354d3 23 exp_p4,
uasenden 0:7e32b01354d3 24 exp_p5,
uasenden 0:7e32b01354d3 25 exp_p6,
uasenden 0:7e32b01354d3 26 exp_p7,
uasenden 0:7e32b01354d3 27 exp_p8,
uasenden 0:7e32b01354d3 28 exp_p9,
uasenden 0:7e32b01354d3 29 exp_p10,
uasenden 0:7e32b01354d3 30 exp_p11,
uasenden 0:7e32b01354d3 31 exp_p12,
uasenden 0:7e32b01354d3 32 exp_p13,
uasenden 0:7e32b01354d3 33 exp_p14,
uasenden 0:7e32b01354d3 34 exp_p15,
uasenden 0:7e32b01354d3 35 };
uasenden 0:7e32b01354d3 36
uasenden 0:7e32b01354d3 37
uasenden 0:7e32b01354d3 38 //*****************************************************************************
uasenden 0:7e32b01354d3 39
uasenden 0:7e32b01354d3 40
uasenden 0:7e32b01354d3 41 class MAX7314_OutputPin {
uasenden 0:7e32b01354d3 42
uasenden 0:7e32b01354d3 43 public:
uasenden 0:7e32b01354d3 44 MAX7314_OutputPin(ExpPinName Pin,PinName PIN_SDA,PinName PIN_SCL,unsigned char Address);
uasenden 0:7e32b01354d3 45 void vWrite(int value);
uasenden 0:7e32b01354d3 46 int read();
uasenden 0:7e32b01354d3 47 #ifdef MBED_OPERATORS
uasenden 0:7e32b01354d3 48 MAX7314_OutputPin& operator= (int value);
uasenden 0:7e32b01354d3 49 operator int();
uasenden 0:7e32b01354d3 50 #endif
uasenden 0:7e32b01354d3 51 protected:
uasenden 0:7e32b01354d3 52 ExpPinName _Pin;
uasenden 0:7e32b01354d3 53 unsigned char _Address;
uasenden 0:7e32b01354d3 54 I2C Bus;
uasenden 0:7e32b01354d3 55 };
uasenden 0:7e32b01354d3 56
uasenden 0:7e32b01354d3 57
uasenden 0:7e32b01354d3 58
uasenden 0:7e32b01354d3 59 //*****************************************************************************
uasenden 0:7e32b01354d3 60
uasenden 0:7e32b01354d3 61
uasenden 0:7e32b01354d3 62
uasenden 0:7e32b01354d3 63 class MAX7314_InputPin {
uasenden 0:7e32b01354d3 64
uasenden 0:7e32b01354d3 65 public:
uasenden 0:7e32b01354d3 66 MAX7314_InputPin(ExpPinName Pin,PinName PIN_SDA,PinName PIN_SCL,unsigned char Address);
uasenden 0:7e32b01354d3 67 int read();
uasenden 0:7e32b01354d3 68 #ifdef MBED_OPERATORS
uasenden 0:7e32b01354d3 69 operator int();
uasenden 0:7e32b01354d3 70 #endif
uasenden 0:7e32b01354d3 71 protected:
uasenden 0:7e32b01354d3 72 ExpPinName _Pin;
uasenden 0:7e32b01354d3 73 unsigned char _Address;
uasenden 0:7e32b01354d3 74 I2C Bus;
uasenden 0:7e32b01354d3 75 };
uasenden 0:7e32b01354d3 76
uasenden 0:7e32b01354d3 77
uasenden 0:7e32b01354d3 78
uasenden 0:7e32b01354d3 79 //*****************************************************************************
uasenden 0:7e32b01354d3 80
uasenden 0:7e32b01354d3 81
uasenden 0:7e32b01354d3 82
uasenden 0:7e32b01354d3 83 class MAX7314 {
uasenden 0:7e32b01354d3 84
uasenden 0:7e32b01354d3 85 public:
uasenden 0:7e32b01354d3 86 MAX7314(PinName PIN_SDA,PinName PIN_SCL,unsigned char Address,PinName PIN_INT=NC);
uasenden 0:7e32b01354d3 87 void vInit(unsigned char Dir,void (*fptr)(void));
uasenden 0:7e32b01354d3 88 void vSetConfiguration(unsigned char Dir);
uasenden 0:7e32b01354d3 89 void vSetPolarity(unsigned char Pol);
uasenden 0:7e32b01354d3 90 unsigned char cRead(void);
uasenden 0:7e32b01354d3 91 void vWrite(unsigned char Data);
uasenden 0:7e32b01354d3 92 void vEnableSetInterrupt(void (*fptr)(void));
uasenden 0:7e32b01354d3 93 void vDisableInterrupt(void);
uasenden 0:7e32b01354d3 94 bool bReadPinINT(void);
uasenden 0:7e32b01354d3 95 protected:
uasenden 0:7e32b01354d3 96 I2C Bus;
uasenden 0:7e32b01354d3 97 InterruptIn MAX7314_Event;
uasenden 0:7e32b01354d3 98 DigitalIn _PIN_INT;
uasenden 0:7e32b01354d3 99 unsigned char _Address;
uasenden 0:7e32b01354d3 100 };