Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of MCP23S17 by
MCP23S17.h
- Committer:
- romilly
- Date:
- 2010-08-21
- Revision:
- 2:6144709f1700
- Child:
- 3:089a2a754567
File content as of revision 2:6144709f1700:
/* MCP23S17 - drive the Microchip MCP23S17 16-bit Port Extender using SPI * Copyright (c) 2010 Romilly Cocking * Released under the MIT License: http://mbed.org/license/mit * * version 0.1 */ #include "mbed.h" #ifndef SER23K256_H #define SER23K256_H // all register addresses assume IOVCON.BANK = 0 (POR default) #define IODIRA 0x00 #define IODIRB 0x01 #define IOCON 0x0A #define GPIOA 0x12 #define GPIOB 0x13 #define OLATA 0x14 #define OLATB 0x15 // Control settings #define IOCON_BANK 0x80 // Banked registers #define IOCON_BYTE_MODE 0x20 // Disables sequential operation. If bank = 0, operations toggle between A and B registers #define IOCON_HAEN 0x08 // Hardware address enable class MCP23S17 { public: MCP23S17(SPI& spi, PinName ncs, char writeOpcode); void directionA(char direction); void directionB(char direction); char inputA(); char inputB(); void outputA(char byte); void outputB(char byte); protected: SPI& _spi; DigitalOut _ncs; void _init(); void _write(char address, char data); char _read(char address); char _readOpcode; char _writeOpcode; }; #endif