The preloaded firmware shipped on the Medusa Icon.

Dependencies:   SoftwarePWM mbed

Committer:
Experiment626
Date:
Sat Sep 13 03:23:01 2014 +0000
Revision:
0:034c0e606458
Child:
1:5d438f8b2afe
Official Medusa Icon Firmware 1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Experiment626 0:034c0e606458 1 #include "mbed.h"
Experiment626 0:034c0e606458 2 #include "SoftwarePWM.h"
Experiment626 0:034c0e606458 3
Experiment626 0:034c0e606458 4 SPI spi(P0_21, P0_22, P1_15); // mosi, miso, sclk
Experiment626 0:034c0e606458 5
Experiment626 0:034c0e606458 6 //enum EYE { LEFT = 0, RIGHT = 1 };
Experiment626 0:034c0e606458 7
Experiment626 0:034c0e606458 8 DigitalOut Latch(P0_4);
Experiment626 0:034c0e606458 9
Experiment626 0:034c0e606458 10 DigitalOut PWM1(P0_13);
Experiment626 0:034c0e606458 11 DigitalOut PWM2(P0_18);
Experiment626 0:034c0e606458 12 DigitalOut PWM3(P0_19);
Experiment626 0:034c0e606458 13 DigitalOut PWM4(P0_11);
Experiment626 0:034c0e606458 14 DigitalOut PWM5(P0_16);
Experiment626 0:034c0e606458 15 DigitalOut PWM6(P0_14);
Experiment626 0:034c0e606458 16
Experiment626 0:034c0e606458 17 //DigitalOut Eyes[] = {(P0_8), (P0_9)};// declare 2 LEDs of the eyes
Experiment626 0:034c0e606458 18 SoftwarePWM LeftEye(P0_8);
Experiment626 0:034c0e606458 19 SoftwarePWM RightEye(P0_9);
Experiment626 0:034c0e606458 20
Experiment626 0:034c0e606458 21 void WriteLED(uint64_t Shiftmap)
Experiment626 0:034c0e606458 22 {
Experiment626 0:034c0e606458 23 spi.write(Shiftmap >> 40);
Experiment626 0:034c0e606458 24 spi.write(Shiftmap >> 32);
Experiment626 0:034c0e606458 25 spi.write(Shiftmap >> 24);
Experiment626 0:034c0e606458 26 spi.write(Shiftmap >> 16);
Experiment626 0:034c0e606458 27 spi.write(Shiftmap >> 8);
Experiment626 0:034c0e606458 28 spi.write(Shiftmap);
Experiment626 0:034c0e606458 29
Experiment626 0:034c0e606458 30 Latch = true;
Experiment626 0:034c0e606458 31 Latch = false;
Experiment626 0:034c0e606458 32 }
Experiment626 0:034c0e606458 33
Experiment626 0:034c0e606458 34 //void BlinkEye(EYE eye, bool blink)
Experiment626 0:034c0e606458 35 //{
Experiment626 0:034c0e606458 36 // Eyes[eye] = blink;
Experiment626 0:034c0e606458 37 //}
Experiment626 0:034c0e606458 38
Experiment626 0:034c0e606458 39 void Initialize()
Experiment626 0:034c0e606458 40 {
Experiment626 0:034c0e606458 41 PWM1 = false;
Experiment626 0:034c0e606458 42 PWM2 = false;
Experiment626 0:034c0e606458 43 PWM3 = false;
Experiment626 0:034c0e606458 44 PWM4 = false;
Experiment626 0:034c0e606458 45 PWM5 = false;
Experiment626 0:034c0e606458 46 PWM6 = false;
Experiment626 0:034c0e606458 47
Experiment626 0:034c0e606458 48 spi.format(16,0);
Experiment626 0:034c0e606458 49 spi.frequency(10 * 1000 * 1000);
Experiment626 0:034c0e606458 50 }
Experiment626 0:034c0e606458 51
Experiment626 0:034c0e606458 52 int main()
Experiment626 0:034c0e606458 53 {
Experiment626 0:034c0e606458 54 Initialize();
Experiment626 0:034c0e606458 55
Experiment626 0:034c0e606458 56 uint64_t Shiftmap = 0x10101010101;
Experiment626 0:034c0e606458 57 int LED_counter = 1;
Experiment626 0:034c0e606458 58
Experiment626 0:034c0e606458 59 LeftEye.Enable(25, 1000);
Experiment626 0:034c0e606458 60 RightEye.Enable(25, 1000);
Experiment626 0:034c0e606458 61
Experiment626 0:034c0e606458 62 // bool isEyeOpen = false;
Experiment626 0:034c0e606458 63
Experiment626 0:034c0e606458 64 while ( true ) {
Experiment626 0:034c0e606458 65 WriteLED(Shiftmap);
Experiment626 0:034c0e606458 66 // isEyeOpen = !isEyeOpen;
Experiment626 0:034c0e606458 67 // BlinkEye(LEFT, isEyeOpen);
Experiment626 0:034c0e606458 68 // BlinkEye(RIGHT, !isEyeOpen);
Experiment626 0:034c0e606458 69
Experiment626 0:034c0e606458 70 if ( LED_counter++ < 8 ) {
Experiment626 0:034c0e606458 71 Shiftmap <<= 1;
Experiment626 0:034c0e606458 72 } else {
Experiment626 0:034c0e606458 73 Shiftmap = 0x10101010101;
Experiment626 0:034c0e606458 74 LED_counter = 1;
Experiment626 0:034c0e606458 75 }
Experiment626 0:034c0e606458 76
Experiment626 0:034c0e606458 77 wait(.075);
Experiment626 0:034c0e606458 78 }
Experiment626 0:034c0e606458 79
Experiment626 0:034c0e606458 80 }