Forked from romilly. Changed the way SPI handler is injected in constructor

Fork of MCP23S17 by Romilly Cocking

Files at this revision

API Documentation at this revision

Comitter:
wyunreal
Date:
Sun Mar 02 18:15:17 2014 +0000
Parent:
9:068b1e8909bb
Commit message:
changing the spi reference by an spi pointer in constructor

Changed in this revision

MCP23S17.cpp Show annotated file Show diff for this revision Revisions of this file
MCP23S17.h Show annotated file Show diff for this revision Revisions of this file
--- a/MCP23S17.cpp	Sat Aug 28 09:48:38 2010 +0000
+++ b/MCP23S17.cpp	Sun Mar 02 18:15:17 2014 +0000
@@ -8,7 +8,8 @@
 #include "mbed.h"
 #include "MCP23S17.h"
 
-MCP23S17::MCP23S17(SPI& spi, PinName ncs, char writeOpcode) : _spi(spi), _ncs(ncs) {
+MCP23S17::MCP23S17(SPI* spi, PinName ncs, char writeOpcode) : _ncs(ncs) {
+    _spi = spi;
     _writeOpcode = writeOpcode;
     _readOpcode = _writeOpcode | 1; // low order bit = 1 for read
     _init();
@@ -16,9 +17,9 @@
 
 char MCP23S17::_read(char address) {
     _ncs = 0;
-    _spi.write(_readOpcode);
-    _spi.write(address);
-    char result = _spi.write(0);
+    _spi->write(_readOpcode);
+    _spi->write(address);
+    char result = _spi->write(0);
     _ncs = 1;
     return result;
 }
@@ -29,9 +30,9 @@
 
 void MCP23S17::_write(char address, char data) {
     _ncs = 0;
-    _spi.write(_writeOpcode);
-    _spi.write(address);
-    _spi.write(data);
+    _spi->write(_writeOpcode);
+    _spi->write(address);
+    _spi->write(data);
     _ncs = 1;
 }
 
--- a/MCP23S17.h	Sat Aug 28 09:48:38 2010 +0000
+++ b/MCP23S17.h	Sun Mar 02 18:15:17 2014 +0000
@@ -34,7 +34,7 @@
 
 class MCP23S17 {
 public:
-    MCP23S17(SPI& spi, PinName ncs, char writeOpcode);
+    MCP23S17(SPI* spi, PinName ncs, char writeOpcode);
     void direction(Port port, char direction);
     void configurePullUps(Port port, char offOrOn);
     void interruptEnable(Port port, char interruptsEnabledMask);
@@ -45,7 +45,7 @@
     char read(Port port);
     void write(Port port, char byte);
 protected:
-    SPI& _spi;
+    SPI* _spi;
     DigitalOut _ncs;
     void _init();
     void _write(Port port, char address, char data);