The preloaded firmware shipped on the Medusa Icon.
Dependencies: SoftwarePWM mbed
Diff: main.cpp
- 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