Controll MCP23S17 as GPIO
ExioMcp23s17.h
- Committer:
- ryood
- Date:
- 2016-10-30
- Revision:
- 0:54f1f00eb42f
- Child:
- 1:2315f8a0be58
File content as of revision 0:54f1f00eb42f:
/* * ExioMcp23s17.h * Rapper Class for MCP23S17 * * https://developer.mbed.org/users/stjo2809/code/MCP23S17/ * * 割込み処理は未実装 * * Created: 2016.10.30 * */ #ifndef _EXIOMCP23S17_H_ #define _EXIOMCP23S17_H_ #include "mbed.h" #include "MCP23S17.h" typedef enum { ExioPortA, ExioPortB } ExioPort; class ExioMcp23s17 : public MCP23S17 { public: ExioMcp23s17(int hardwareaddress, SPI& spi, PinName nCs, PinName nReset) : MCP23S17(hardwareaddress, spi, nCs, nReset) {} ExioMcp23s17(int hardwareaddress, SPI& spi, PinName nCs) : MCP23S17(hardwareaddress, spi, nCs) {} char ioDirection(ExioPort port) { return read(IODIRA_ADDR | port); } void ioDirection(ExioPort port, char data) { write(IODIRA_ADDR | port, data); } char ioPolarity(ExioPort port) { return read(IPOLA_ADDR | port); } void ioPolarity(ExioPort port, char data) { write(IPOLA_ADDR | port, data); } char ioPullup(ExioPort port) { return read(GPPUA_ADDR | port); } void ioPullup(ExioPort port, char data) { write(GPPUA_ADDR | port, data); } char readPort(ExioPort port) { return read(GPIOA_ADDR | port); } void writePort(ExioPort port, char data) { write(GPIOA_ADDR | port, data); } protected: void write(char reg_address, char data) { MCP23S17::write(reg_address, data); } char read(char reg_address) { return MCP23S17::read(reg_address); } }; #endif //_EXIOMCP23S17_H_