SPI Master Test

Dependencies:   mbed-rtos mbed st7565LCD

Revision:
7:4bb0c1e05e33
Parent:
6:66955ebd56dd
--- a/main.cpp	Tue Oct 04 05:25:37 2016 +0000
+++ b/main.cpp	Tue Oct 04 06:42:29 2016 +0000
@@ -2,9 +2,8 @@
 #include "rtos.h"
 #include "st7565LCD.h"
 
-#define SPI_SPEED       (4000000)
-#define SPI_DUMMY_DATA  (0x55)
-#define LOOP_N          (8)
+#define SPI_SPEED   (4000000)
+#define SPI_HEADER  (0x55)
 
 BusIn Switches(PA_0, PA_1, PA_4, PB_0, PC_1, PC_0);
 
@@ -54,7 +53,7 @@
     
     // Setup SPI
     SpiMCs = 1;
-    SpiM.format(8, 0);
+    SpiM.format(16, 0);
     SpiM.frequency(SPI_SPEED);
     
     Thread::wait(1000);
@@ -62,24 +61,19 @@
     
     uint8_t count = 0;
     for (;;) {
+        uint16_t sendVal = (SPI_HEADER << 8) | count;
         SpiMCs = 0;
-        int step = -1;
-        for (int i = 0; i < LOOP_N; i++) {
-            uint8_t recievedVal = SpiM.write(count);
-            if (isStepChanged) {
-                step = recievedVal;
-                isStepChanged = false;
-            }
-            count++;
-        }
+        uint16_t receivedVal = SpiM.write(sendVal);
         SpiMCs = 1;
-        if (step != -1) {
+        count++;
+        if (isStepChanged) {
             char lineBuffer[20];
-            sprintf(lineBuffer, "Step: %02d", step);
+            sprintf(lineBuffer, "Step: %02d", receivedVal);
             gLCD.drawstring(0, 0, lineBuffer);
             gLCD.display();
+            isStepChanged = false;
+
         }
         Thread::wait(1);
-        //wait_us(100);
     }
 }