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.
Revision 0:0f32ac84dca5, committed 2012-04-10
- Comitter:
- davervw
- Date:
- Tue Apr 10 04:42:12 2012 +0000
- Commit message:
- SPIDebug library initial commit
Changed in this revision
| SPIDebug.cpp | Show annotated file Show diff for this revision Revisions of this file |
| SPIDebug.h | Show annotated file Show diff for this revision Revisions of this file |
diff -r 000000000000 -r 0f32ac84dca5 SPIDebug.cpp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SPIDebug.cpp Tue Apr 10 04:42:12 2012 +0000
@@ -0,0 +1,71 @@
+///////////////////////////////////////////////////////////////////////////////
+// SPIDebug.h
+//
+// COPYRIGHT (c) 2012 by David Van Wagner
+//
+// dave@vanwagner.org
+// http://techwithdave.blogspot.com
+//
+// License: Creative Commons Attribution-ShareAlike 3.0 Unported License
+// http://creativecommons.org/licenses/by-sa/3.0/
+///////////////////////////////////////////////////////////////////////////////
+
+#include "SPIDebug.h"
+
+bool SPIDebug::debug = true; // default on
+
+SPIDebug::SPIDebug(PinName mosi, PinName miso, PinName sclk, const char *name)
+{
+ if (debug)
+ printf("SPI(%08x, %08x, %08x, %s)\n", mosi, miso, sclk, name);
+ spi = new SPI(mosi, miso, sclk, name);
+}
+
+SPIDebug::~SPIDebug()
+{
+ delete spi;
+}
+
+void SPIDebug::format(int bits, int mode)
+{
+ if (debug)
+ printf("SPI.format(%d, %d)\n", bits, mode);
+ spi->format(bits, mode);
+}
+
+void SPIDebug::frequency(int hz)
+{
+ if (debug)
+ printf("SPI.frequency(%d)\n", hz);
+ spi->frequency(hz);
+}
+
+int SPIDebug::write(int value)
+{
+ int result = spi->write(value);
+ if (debug)
+ printf(">%02x <%02x ", value, result);
+ return result;
+}
+
+CSDebug::CSDebug(PinName pin)
+{
+ cs = new DigitalOut(pin);
+}
+
+CSDebug::~CSDebug()
+{
+ delete cs;
+}
+
+void CSDebug::write(bool state)
+{
+ cs->write(state);
+ if (SPIDebug::debug)
+ {
+ if (state == false)
+ printf("SPI CS\n");
+ else
+ printf("\n");
+ }
+}
diff -r 000000000000 -r 0f32ac84dca5 SPIDebug.h
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SPIDebug.h Tue Apr 10 04:42:12 2012 +0000
@@ -0,0 +1,38 @@
+///////////////////////////////////////////////////////////////////////////////
+// SPIDebug.h
+//
+// COPYRIGHT (c) 2012 by David Van Wagner
+//
+// dave@vanwagner.org
+// http://techwithdave.blogspot.com
+//
+// License: Creative Commons Attribution-ShareAlike 3.0 Unported License
+// http://creativecommons.org/licenses/by-sa/3.0/
+///////////////////////////////////////////////////////////////////////////////
+
+#include <mbed.h>
+
+class SPIDebug
+{
+private:
+ SPI* spi;
+
+public:
+ SPIDebug(PinName mosi, PinName miso, PinName sclk, const char *name = NULL);
+ virtual ~SPIDebug();
+ void format(int bits, int mode = 0);
+ void frequency(int hz = 10000000);
+ virtual int write(int value);
+ static bool debug; // allow to be changed to control whether there are debug messages
+};
+
+class CSDebug
+{
+private:
+ DigitalOut* cs;
+
+public:
+ CSDebug(PinName pin);
+ ~CSDebug();
+ void write(bool state);
+};