The preloaded firmware shipped on the Medusa Icon.

Dependencies:   SoftwarePWM mbed

Revision:
0:034c0e606458
Child:
1:5d438f8b2afe
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Sep 13 03:23:01 2014 +0000
@@ -0,0 +1,80 @@
+#include "mbed.h"
+#include "SoftwarePWM.h"
+
+SPI spi(P0_21, P0_22, P1_15); // mosi, miso, sclk
+
+//enum EYE { LEFT = 0, RIGHT = 1 };
+
+DigitalOut Latch(P0_4);
+
+DigitalOut PWM1(P0_13);
+DigitalOut PWM2(P0_18);
+DigitalOut PWM3(P0_19);
+DigitalOut PWM4(P0_11);
+DigitalOut PWM5(P0_16);
+DigitalOut PWM6(P0_14);
+
+//DigitalOut Eyes[] = {(P0_8), (P0_9)};// declare 2 LEDs of the eyes
+SoftwarePWM LeftEye(P0_8);
+SoftwarePWM RightEye(P0_9);
+
+void WriteLED(uint64_t Shiftmap)
+{
+    spi.write(Shiftmap >> 40);
+    spi.write(Shiftmap >> 32);
+    spi.write(Shiftmap >> 24);
+    spi.write(Shiftmap >> 16);
+    spi.write(Shiftmap >> 8);
+    spi.write(Shiftmap);
+    
+    Latch = true;
+    Latch = false;
+}
+
+//void BlinkEye(EYE eye, bool blink)
+//{
+//    Eyes[eye] = blink;
+//}
+
+void Initialize()
+{
+    PWM1 = false;
+    PWM2 = false;
+    PWM3 = false;
+    PWM4 = false;
+    PWM5 = false;
+    PWM6 = false;
+
+    spi.format(16,0);
+    spi.frequency(10 * 1000 * 1000);
+}
+
+int main()
+{
+    Initialize();
+
+    uint64_t Shiftmap = 0x10101010101;
+    int LED_counter = 1;
+
+    LeftEye.Enable(25, 1000);
+    RightEye.Enable(25, 1000);
+    
+//    bool isEyeOpen = false;
+
+    while ( true ) {
+        WriteLED(Shiftmap);
+//        isEyeOpen = !isEyeOpen;
+//        BlinkEye(LEFT, isEyeOpen);
+//        BlinkEye(RIGHT, !isEyeOpen);
+
+        if ( LED_counter++ < 8 ) {
+            Shiftmap <<= 1;
+        } else {
+            Shiftmap = 0x10101010101;
+            LED_counter = 1;
+        }
+        
+        wait(.075);
+    }
+
+}
\ No newline at end of file