errors

Dependencies:   mbed

Committer:
bagbag
Date:
Sat Mar 15 21:29:36 2014 +0000
Revision:
0:ed91de6e3a1b
errors

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bagbag 0:ed91de6e3a1b 1 #include "mbed.h"
bagbag 0:ed91de6e3a1b 2 #include "animations.h"
bagbag 0:ed91de6e3a1b 3
bagbag 0:ed91de6e3a1b 4 DigitalOut ledy0(PC_0);
bagbag 0:ed91de6e3a1b 5 DigitalOut ledy1(PC_1);
bagbag 0:ed91de6e3a1b 6 DigitalOut ledy2(PC_2);
bagbag 0:ed91de6e3a1b 7 DigitalOut ledx0(PC_13);
bagbag 0:ed91de6e3a1b 8 DigitalOut ledx1(PC_14);
bagbag 0:ed91de6e3a1b 9 DigitalOut ledx2(PC_15);
bagbag 0:ed91de6e3a1b 10
bagbag 0:ed91de6e3a1b 11 AnalogIn poti(A0);
bagbag 0:ed91de6e3a1b 12
bagbag 0:ed91de6e3a1b 13 void turnOn(short x, short y)
bagbag 0:ed91de6e3a1b 14 {
bagbag 0:ed91de6e3a1b 15 switch(x) {
bagbag 0:ed91de6e3a1b 16 case 0:
bagbag 0:ed91de6e3a1b 17 ledx0 = 0;
bagbag 0:ed91de6e3a1b 18 break;
bagbag 0:ed91de6e3a1b 19 case 1:
bagbag 0:ed91de6e3a1b 20 ledx1 = 0;
bagbag 0:ed91de6e3a1b 21 break;
bagbag 0:ed91de6e3a1b 22 case 2:
bagbag 0:ed91de6e3a1b 23 ledx2 = 0;
bagbag 0:ed91de6e3a1b 24 break;
bagbag 0:ed91de6e3a1b 25 }
bagbag 0:ed91de6e3a1b 26
bagbag 0:ed91de6e3a1b 27 switch(y) {
bagbag 0:ed91de6e3a1b 28 case 0:
bagbag 0:ed91de6e3a1b 29 ledy0 = 1;
bagbag 0:ed91de6e3a1b 30 break;
bagbag 0:ed91de6e3a1b 31 case 1:
bagbag 0:ed91de6e3a1b 32 ledy1 = 1;
bagbag 0:ed91de6e3a1b 33 break;
bagbag 0:ed91de6e3a1b 34 case 2:
bagbag 0:ed91de6e3a1b 35 ledy2 = 1;
bagbag 0:ed91de6e3a1b 36 break;
bagbag 0:ed91de6e3a1b 37 }
bagbag 0:ed91de6e3a1b 38 }
bagbag 0:ed91de6e3a1b 39
bagbag 0:ed91de6e3a1b 40 void turnOff(short x, short y)
bagbag 0:ed91de6e3a1b 41 {
bagbag 0:ed91de6e3a1b 42 switch(x) {
bagbag 0:ed91de6e3a1b 43 case 0:
bagbag 0:ed91de6e3a1b 44 ledx0 = 1;
bagbag 0:ed91de6e3a1b 45 break;
bagbag 0:ed91de6e3a1b 46 case 1:
bagbag 0:ed91de6e3a1b 47 ledx1 = 1;
bagbag 0:ed91de6e3a1b 48 break;
bagbag 0:ed91de6e3a1b 49 case 2:
bagbag 0:ed91de6e3a1b 50 ledx2 = 1;
bagbag 0:ed91de6e3a1b 51 break;
bagbag 0:ed91de6e3a1b 52 }
bagbag 0:ed91de6e3a1b 53
bagbag 0:ed91de6e3a1b 54 switch(y) {
bagbag 0:ed91de6e3a1b 55 case 0:
bagbag 0:ed91de6e3a1b 56 ledy0 = 0;
bagbag 0:ed91de6e3a1b 57 break;
bagbag 0:ed91de6e3a1b 58 case 1:
bagbag 0:ed91de6e3a1b 59 ledy1 = 0;
bagbag 0:ed91de6e3a1b 60 break;
bagbag 0:ed91de6e3a1b 61 case 2:
bagbag 0:ed91de6e3a1b 62 ledy2 = 0;
bagbag 0:ed91de6e3a1b 63 break;
bagbag 0:ed91de6e3a1b 64 }
bagbag 0:ed91de6e3a1b 65 }
bagbag 0:ed91de6e3a1b 66
bagbag 0:ed91de6e3a1b 67 void setPixel(int x, int y, bool on)
bagbag 0:ed91de6e3a1b 68 {
bagbag 0:ed91de6e3a1b 69 if (on)
bagbag 0:ed91de6e3a1b 70 turnOn(x,y);
bagbag 0:ed91de6e3a1b 71 else
bagbag 0:ed91de6e3a1b 72 turnOff(x,y);
bagbag 0:ed91de6e3a1b 73 }
bagbag 0:ed91de6e3a1b 74
bagbag 0:ed91de6e3a1b 75 int delay = 100;
bagbag 0:ed91de6e3a1b 76
bagbag 0:ed91de6e3a1b 77 void updateDelay()
bagbag 0:ed91de6e3a1b 78 {
bagbag 0:ed91de6e3a1b 79 delay = 1000 + pow(poti * 4, 4) * 1000;
bagbag 0:ed91de6e3a1b 80 }
bagbag 0:ed91de6e3a1b 81
bagbag 0:ed91de6e3a1b 82 int leds[9][2] = {
bagbag 0:ed91de6e3a1b 83 { 0, 0 },
bagbag 0:ed91de6e3a1b 84 { 1, 0 },
bagbag 0:ed91de6e3a1b 85 { 2, 0 },
bagbag 0:ed91de6e3a1b 86 { 0, 1 },
bagbag 0:ed91de6e3a1b 87 { 1, 1 },
bagbag 0:ed91de6e3a1b 88 { 2, 1 },
bagbag 0:ed91de6e3a1b 89 { 0, 2 },
bagbag 0:ed91de6e3a1b 90 { 1, 2 },
bagbag 0:ed91de6e3a1b 91 { 2, 2 },
bagbag 0:ed91de6e3a1b 92 };
bagbag 0:ed91de6e3a1b 93
bagbag 0:ed91de6e3a1b 94 void animate(int animation[][10] animation, int cycles, bool inverted = false)
bagbag 0:ed91de6e3a1b 95 {
bagbag 0:ed91de6e3a1b 96 int frames = sizeof(animation) / 320;
bagbag 0:ed91de6e3a1b 97
bagbag 0:ed91de6e3a1b 98 for (int frame = 0; frame < frames; frame++) {
bagbag 0:ed91de6e3a1b 99 int frameTime = animation[frame][9];
bagbag 0:ed91de6e3a1b 100
bagbag 0:ed91de6e3a1b 101 Timer timer;
bagbag 0:ed91de6e3a1b 102
bagbag 0:ed91de6e3a1b 103 while (timer.read_ms() < frameTime) {
bagbag 0:ed91de6e3a1b 104 for (int pixel = 0; pixel < 9; pixel++) {
bagbag 0:ed91de6e3a1b 105 bool state = (bool)animation[frame][pixel] ^ inverted;
bagbag 0:ed91de6e3a1b 106 setPixel(leds[pixel][0], leds[pixel][1], state);
bagbag 0:ed91de6e3a1b 107 wait_us(delay);
bagbag 0:ed91de6e3a1b 108 setPixel(leds[pixel][0], leds[pixel][1], !state);
bagbag 0:ed91de6e3a1b 109 }
bagbag 0:ed91de6e3a1b 110 }
bagbag 0:ed91de6e3a1b 111 }
bagbag 0:ed91de6e3a1b 112 }
bagbag 0:ed91de6e3a1b 113
bagbag 0:ed91de6e3a1b 114 void init()
bagbag 0:ed91de6e3a1b 115 {
bagbag 0:ed91de6e3a1b 116 for (int x = 0; x<3; x++)
bagbag 0:ed91de6e3a1b 117 for (int y = 0; y<3; y++)
bagbag 0:ed91de6e3a1b 118 turnOff(x,y);
bagbag 0:ed91de6e3a1b 119 }
bagbag 0:ed91de6e3a1b 120
bagbag 0:ed91de6e3a1b 121 int main()
bagbag 0:ed91de6e3a1b 122 {
bagbag 0:ed91de6e3a1b 123 init();
bagbag 0:ed91de6e3a1b 124 Ticker ticker;
bagbag 0:ed91de6e3a1b 125 ticker.attach(&updateDelay, 0.05);
bagbag 0:ed91de6e3a1b 126
bagbag 0:ed91de6e3a1b 127 while(true) {
bagbag 0:ed91de6e3a1b 128 animate(animation1, 8);
bagbag 0:ed91de6e3a1b 129 animate(animation2, 2);
bagbag 0:ed91de6e3a1b 130 animate(animation3, 1);
bagbag 0:ed91de6e3a1b 131 animate(animation4, 2);
bagbag 0:ed91de6e3a1b 132 animate(animation5, 2);
bagbag 0:ed91de6e3a1b 133 animate(transition6, 1);
bagbag 0:ed91de6e3a1b 134 animate(animation6, 3);
bagbag 0:ed91de6e3a1b 135 animate(end6, 1);
bagbag 0:ed91de6e3a1b 136 }
bagbag 0:ed91de6e3a1b 137 }