FRA221_2015 / Mbed 2 deprecated Project_PokPakGame

Dependencies:   mbed

Fork of Project_PokPakGame by FRA221_7B

Committer:
lolopo008
Date:
Sat Dec 05 17:19:21 2015 +0000
Revision:
4:3605c624b64f
Parent:
3:054a677aca64
Child:
5:7041c827932b
,;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Pumipachpro 0:e282add6146d 1 #include "mbed.h"
lolopo008 4:3605c624b64f 2 #include "time.h"
Pumipachpro 2:8b6312dbfd2f 3
Pumipachpro 0:e282add6146d 4 SPI DataPack(SPI_MOSI, SPI_MISO, SPI_SCK);
Pumipachpro 0:e282add6146d 5 DigitalOut Latch(D10);
Pumipachpro 2:8b6312dbfd2f 6 AnalogIn VR0(A0);
Pumipachpro 2:8b6312dbfd2f 7 AnalogIn VR1(A1);
lolopo008 4:3605c624b64f 8 AnalogIn ran(A2);
lolopo008 4:3605c624b64f 9 DigitalIn UnderButton(D7);
lolopo008 4:3605c624b64f 10 DigitalIn UpperButton(D6);
Pumipachpro 0:e282add6146d 11
Pumipachpro 2:8b6312dbfd2f 12 float VR_value0,VR_value1;
Pumipachpro 2:8b6312dbfd2f 13 int Base[6][3][3]= {
Pumipachpro 2:8b6312dbfd2f 14 //[6]=[0]_base1,[1]_base2,[2]_base3,[3]_base4,[4]_base5,[5]_base6
Pumipachpro 2:8b6312dbfd2f 15 //[3]=[0]_red,[1]_yello,[2]_green
Pumipachpro 2:8b6312dbfd2f 16 {{0x1F,0xFF,0xFF},{0x1F,0x1F,0xFF},{0xFF,0x1F,0xFF}} ,
Pumipachpro 2:8b6312dbfd2f 17 {{0x8F,0xFF,0xFF},{0x8F,0x8F,0xFF},{0xFF,0x8F,0xFF}} ,
Pumipachpro 2:8b6312dbfd2f 18 {{0xC7,0xFF,0xFF},{0xC7,0xC7,0xFF},{0xFF,0xC7,0xFF}} ,
Pumipachpro 2:8b6312dbfd2f 19 {{0xE3,0xFF,0xFF},{0xE3,0xE3,0xFF},{0xFF,0xE3,0xFF}} ,
Pumipachpro 2:8b6312dbfd2f 20 {{0xF1,0xFF,0xFF},{0xF1,0xF1,0xFF},{0xFF,0xF1,0xFF}} ,
Pumipachpro 2:8b6312dbfd2f 21 {{0xF8,0xFF,0xFF},{0xF8,0xF8,0xFF},{0xFF,0xF8,0xFF}}
Pumipachpro 2:8b6312dbfd2f 22 };
lolopo008 3:054a677aca64 23 int Row[8]= {1,2,4,8,16,32,64,128};
lolopo008 3:054a677aca64 24 int Col[8]= {127,191,223,239,247,251,253,254};
lolopo008 3:054a677aca64 25 int x,y,up,down,t,way,c;
lolopo008 3:054a677aca64 26
lolopo008 3:054a677aca64 27 void Count()
lolopo008 3:054a677aca64 28 {
lolopo008 3:054a677aca64 29 //3
lolopo008 3:054a677aca64 30 for(c=0; c<3000; c++) {
lolopo008 3:054a677aca64 31 Latch=0;
lolopo008 3:054a677aca64 32 DataPack.write(0xFF);
lolopo008 3:054a677aca64 33 wait_us(1);
lolopo008 3:054a677aca64 34 DataPack.write(0x1F);
lolopo008 3:054a677aca64 35 wait_us(1);
lolopo008 3:054a677aca64 36 DataPack.write(0x1F);
lolopo008 3:054a677aca64 37 wait_us(1);
lolopo008 3:054a677aca64 38 DataPack.write(0x40);
lolopo008 3:054a677aca64 39 wait_us(1);
lolopo008 3:054a677aca64 40 Latch=1;
lolopo008 3:054a677aca64 41
lolopo008 3:054a677aca64 42 Latch=0;
lolopo008 3:054a677aca64 43 DataPack.write(0xFF);
lolopo008 3:054a677aca64 44 wait_us(1);
lolopo008 3:054a677aca64 45 DataPack.write(0x78);
lolopo008 3:054a677aca64 46 wait_us(1);
lolopo008 3:054a677aca64 47 DataPack.write(0x78);
lolopo008 3:054a677aca64 48 wait_us(1);
lolopo008 3:054a677aca64 49 DataPack.write(0x28);
lolopo008 3:054a677aca64 50 wait_us(1);
lolopo008 3:054a677aca64 51 Latch=1;
lolopo008 3:054a677aca64 52
lolopo008 3:054a677aca64 53 Latch=0;
lolopo008 3:054a677aca64 54 DataPack.write(0xFF);
lolopo008 3:054a677aca64 55 wait_us(1);
lolopo008 3:054a677aca64 56 DataPack.write(0x1E);
lolopo008 3:054a677aca64 57 wait_us(1);
lolopo008 3:054a677aca64 58 DataPack.write(0x1E);
lolopo008 3:054a677aca64 59 wait_us(1);
lolopo008 3:054a677aca64 60 DataPack.write(0x14);
lolopo008 3:054a677aca64 61 wait_us(1);
lolopo008 3:054a677aca64 62 Latch=1;
lolopo008 3:054a677aca64 63
lolopo008 3:054a677aca64 64 Latch=0;
lolopo008 3:054a677aca64 65 DataPack.write(0xFF);
lolopo008 3:054a677aca64 66 wait_us(1);
lolopo008 3:054a677aca64 67 DataPack.write(0xF8);
lolopo008 3:054a677aca64 68 wait_us(1);
lolopo008 3:054a677aca64 69 DataPack.write(0xF8);
lolopo008 3:054a677aca64 70 wait_us(1);
lolopo008 3:054a677aca64 71 DataPack.write(0x02);
lolopo008 3:054a677aca64 72 wait_us(1);
lolopo008 3:054a677aca64 73 Latch=1;
lolopo008 3:054a677aca64 74 }
lolopo008 3:054a677aca64 75
lolopo008 3:054a677aca64 76 //2
lolopo008 3:054a677aca64 77 for(c=0; c<2200; c++) {
lolopo008 3:054a677aca64 78 Latch=0;
lolopo008 3:054a677aca64 79 DataPack.write(0xFF);
lolopo008 3:054a677aca64 80 wait_us(1);
lolopo008 3:054a677aca64 81 DataPack.write(0x1F);
lolopo008 3:054a677aca64 82 wait_us(1);
lolopo008 3:054a677aca64 83 DataPack.write(0x1F);
lolopo008 3:054a677aca64 84 wait_us(1);
lolopo008 3:054a677aca64 85 DataPack.write(0x40);
lolopo008 3:054a677aca64 86 wait_us(1);
lolopo008 3:054a677aca64 87 Latch=1;
lolopo008 3:054a677aca64 88
lolopo008 3:054a677aca64 89 Latch=0;
lolopo008 3:054a677aca64 90 DataPack.write(0xFF);
lolopo008 3:054a677aca64 91 wait_us(1);
lolopo008 3:054a677aca64 92 DataPack.write(0xD8);
lolopo008 3:054a677aca64 93 wait_us(1);
lolopo008 3:054a677aca64 94 DataPack.write(0xD8);
lolopo008 3:054a677aca64 95 wait_us(1);
lolopo008 3:054a677aca64 96 DataPack.write(0x20);
lolopo008 3:054a677aca64 97 wait_us(1);
lolopo008 3:054a677aca64 98 Latch=1;
lolopo008 3:054a677aca64 99
lolopo008 3:054a677aca64 100 Latch=0;
lolopo008 3:054a677aca64 101 DataPack.write(0xFF);
lolopo008 3:054a677aca64 102 wait_us(1);
lolopo008 3:054a677aca64 103 DataPack.write(0x1E);
lolopo008 3:054a677aca64 104 wait_us(1);
lolopo008 3:054a677aca64 105 DataPack.write(0x1E);
lolopo008 3:054a677aca64 106 wait_us(1);
lolopo008 3:054a677aca64 107 DataPack.write(0x10);
lolopo008 3:054a677aca64 108 wait_us(1);
lolopo008 3:054a677aca64 109 Latch=1;
lolopo008 3:054a677aca64 110
lolopo008 3:054a677aca64 111 Latch=0;
lolopo008 3:054a677aca64 112 DataPack.write(0xFF);
lolopo008 3:054a677aca64 113 wait_us(1);
lolopo008 3:054a677aca64 114 DataPack.write(0x78);
lolopo008 3:054a677aca64 115 wait_us(1);
lolopo008 3:054a677aca64 116 DataPack.write(0x78);
lolopo008 3:054a677aca64 117 wait_us(1);
lolopo008 3:054a677aca64 118 DataPack.write(0x08);
lolopo008 3:054a677aca64 119 wait_us(1);
lolopo008 3:054a677aca64 120 Latch=1;
lolopo008 3:054a677aca64 121
lolopo008 3:054a677aca64 122 Latch=0;
lolopo008 3:054a677aca64 123 DataPack.write(0xFF);
lolopo008 3:054a677aca64 124 wait_us(1);
lolopo008 3:054a677aca64 125 DataPack.write(0x1B);
lolopo008 3:054a677aca64 126 wait_us(1);
lolopo008 3:054a677aca64 127 DataPack.write(0x1B);
lolopo008 3:054a677aca64 128 wait_us(1);
lolopo008 3:054a677aca64 129 DataPack.write(0x04);
lolopo008 3:054a677aca64 130 wait_us(1);
lolopo008 3:054a677aca64 131 Latch=1;
lolopo008 3:054a677aca64 132
lolopo008 3:054a677aca64 133 Latch=0;
lolopo008 3:054a677aca64 134 DataPack.write(0xFF);
lolopo008 3:054a677aca64 135 wait_us(1);
lolopo008 3:054a677aca64 136 DataPack.write(0xF8);
lolopo008 3:054a677aca64 137 wait_us(1);
lolopo008 3:054a677aca64 138 DataPack.write(0xF8);
lolopo008 3:054a677aca64 139 wait_us(1);
lolopo008 3:054a677aca64 140 DataPack.write(0x02);
lolopo008 3:054a677aca64 141 wait_us(1);
lolopo008 3:054a677aca64 142 Latch=1;
lolopo008 3:054a677aca64 143 }
lolopo008 3:054a677aca64 144
lolopo008 3:054a677aca64 145 //1
lolopo008 3:054a677aca64 146 for(c=0; c<4000; c++) {
lolopo008 3:054a677aca64 147 Latch=0;
lolopo008 3:054a677aca64 148 DataPack.write(0xFF);
lolopo008 3:054a677aca64 149 wait_us(1);
lolopo008 3:054a677aca64 150 DataPack.write(0xBF);
lolopo008 3:054a677aca64 151 wait_us(1);
lolopo008 3:054a677aca64 152 DataPack.write(0xBF);
lolopo008 3:054a677aca64 153 wait_us(1);
lolopo008 3:054a677aca64 154 DataPack.write(0x40);
lolopo008 3:054a677aca64 155 wait_us(1);
lolopo008 3:054a677aca64 156 Latch=1;
lolopo008 3:054a677aca64 157
lolopo008 3:054a677aca64 158 Latch=0;
lolopo008 3:054a677aca64 159 DataPack.write(0xFF);
lolopo008 3:054a677aca64 160 wait_us(1);
lolopo008 3:054a677aca64 161 DataPack.write(0xBD);
lolopo008 3:054a677aca64 162 wait_us(1);
lolopo008 3:054a677aca64 163 DataPack.write(0xBD);
lolopo008 3:054a677aca64 164 wait_us(1);
lolopo008 3:054a677aca64 165 DataPack.write(0x3C);
lolopo008 3:054a677aca64 166 wait_us(1);
lolopo008 3:054a677aca64 167 Latch=1;
lolopo008 3:054a677aca64 168
lolopo008 3:054a677aca64 169 Latch=0;
lolopo008 3:054a677aca64 170 DataPack.write(0xFF);
lolopo008 3:054a677aca64 171 wait_us(1);
lolopo008 3:054a677aca64 172 DataPack.write(0xFD);
lolopo008 3:054a677aca64 173 wait_us(1);
lolopo008 3:054a677aca64 174 DataPack.write(0xFD);
lolopo008 3:054a677aca64 175 wait_us(1);
lolopo008 3:054a677aca64 176 DataPack.write(0x02);
lolopo008 3:054a677aca64 177 wait_us(1);
lolopo008 3:054a677aca64 178 Latch=1;
lolopo008 3:054a677aca64 179 }
lolopo008 3:054a677aca64 180 }
Pumipachpro 2:8b6312dbfd2f 181
Pumipachpro 2:8b6312dbfd2f 182 void BaseColorUnder(int a,int b)
Pumipachpro 2:8b6312dbfd2f 183 {
Pumipachpro 2:8b6312dbfd2f 184 Latch=0;
Pumipachpro 2:8b6312dbfd2f 185 DataPack.write(Base[a][b][0]);
Pumipachpro 2:8b6312dbfd2f 186 wait_us(1);
Pumipachpro 2:8b6312dbfd2f 187 DataPack.write(Base[a][b][1]);
Pumipachpro 2:8b6312dbfd2f 188 wait_us(1);
Pumipachpro 2:8b6312dbfd2f 189 DataPack.write(Base[a][b][2]);
Pumipachpro 2:8b6312dbfd2f 190 wait_us(1);
Pumipachpro 2:8b6312dbfd2f 191 DataPack.write(0x01);
Pumipachpro 2:8b6312dbfd2f 192 wait_us(1);
Pumipachpro 2:8b6312dbfd2f 193 Latch=1;
Pumipachpro 2:8b6312dbfd2f 194 }
Pumipachpro 2:8b6312dbfd2f 195
Pumipachpro 2:8b6312dbfd2f 196 void BaseColorUpper(int a,int b)
Pumipachpro 2:8b6312dbfd2f 197 {
Pumipachpro 2:8b6312dbfd2f 198 Latch=0;
Pumipachpro 2:8b6312dbfd2f 199 DataPack.write(Base[a][b][0]);
Pumipachpro 2:8b6312dbfd2f 200 wait_us(1);
Pumipachpro 2:8b6312dbfd2f 201 DataPack.write(Base[a][b][1]);
Pumipachpro 2:8b6312dbfd2f 202 wait_us(1);
Pumipachpro 2:8b6312dbfd2f 203 DataPack.write(Base[a][b][2]);
Pumipachpro 2:8b6312dbfd2f 204 wait_us(1);
Pumipachpro 2:8b6312dbfd2f 205 DataPack.write(0x80);
Pumipachpro 2:8b6312dbfd2f 206 wait_us(1);
Pumipachpro 2:8b6312dbfd2f 207 Latch=1;
Pumipachpro 2:8b6312dbfd2f 208 }
Pumipachpro 2:8b6312dbfd2f 209
Pumipachpro 2:8b6312dbfd2f 210 //color >> red=0 , yello=1 , green=2
Pumipachpro 2:8b6312dbfd2f 211 int BaseUnder(int color)
Pumipachpro 2:8b6312dbfd2f 212 {
Pumipachpro 2:8b6312dbfd2f 213 VR_value0 = VR0.read();
Pumipachpro 2:8b6312dbfd2f 214 VR_value0 = VR_value0*6;
Pumipachpro 0:e282add6146d 215
Pumipachpro 2:8b6312dbfd2f 216 if(VR_value0<=1) {
Pumipachpro 2:8b6312dbfd2f 217 //base1
Pumipachpro 2:8b6312dbfd2f 218 BaseColorUnder(0,color);
Pumipachpro 2:8b6312dbfd2f 219 return 1;
Pumipachpro 2:8b6312dbfd2f 220 } else if(VR_value0>1&&VR_value0<=2) {
Pumipachpro 2:8b6312dbfd2f 221 //base2
Pumipachpro 2:8b6312dbfd2f 222 BaseColorUnder(1,color);
Pumipachpro 2:8b6312dbfd2f 223 return 2;
Pumipachpro 2:8b6312dbfd2f 224 } else if(VR_value0>2&&VR_value0<=3) {
Pumipachpro 2:8b6312dbfd2f 225 //base3
Pumipachpro 2:8b6312dbfd2f 226 BaseColorUnder(2,color);
Pumipachpro 2:8b6312dbfd2f 227 return 3;
Pumipachpro 2:8b6312dbfd2f 228 } else if(VR_value0>3&&VR_value0<=4) {
Pumipachpro 2:8b6312dbfd2f 229 //base4
Pumipachpro 2:8b6312dbfd2f 230 BaseColorUnder(3,color);
Pumipachpro 2:8b6312dbfd2f 231 return 4;
Pumipachpro 2:8b6312dbfd2f 232 } else if(VR_value0>4&&VR_value0<=5) {
Pumipachpro 2:8b6312dbfd2f 233 //base5
Pumipachpro 2:8b6312dbfd2f 234 BaseColorUnder(4,color);
Pumipachpro 2:8b6312dbfd2f 235 return 5;
Pumipachpro 2:8b6312dbfd2f 236 } else if(VR_value0>5&&VR_value0<=6) {
Pumipachpro 2:8b6312dbfd2f 237 //base4
Pumipachpro 2:8b6312dbfd2f 238 BaseColorUnder(5,color);
Pumipachpro 2:8b6312dbfd2f 239 return 6;
Pumipachpro 2:8b6312dbfd2f 240 }
Pumipachpro 2:8b6312dbfd2f 241 }
Pumipachpro 2:8b6312dbfd2f 242
Pumipachpro 2:8b6312dbfd2f 243 //color >> red=0 , yello=1 , green=2
Pumipachpro 2:8b6312dbfd2f 244 int BaseUpper(int color)
Pumipachpro 2:8b6312dbfd2f 245 {
Pumipachpro 2:8b6312dbfd2f 246 VR_value1 = VR1.read();
Pumipachpro 2:8b6312dbfd2f 247 VR_value1 = VR_value1*6;
Pumipachpro 2:8b6312dbfd2f 248
Pumipachpro 2:8b6312dbfd2f 249 if(VR_value1<=1) {
Pumipachpro 2:8b6312dbfd2f 250 //base1
Pumipachpro 2:8b6312dbfd2f 251 BaseColorUpper(0,color);
Pumipachpro 2:8b6312dbfd2f 252 return 1;
Pumipachpro 2:8b6312dbfd2f 253 } else if(VR_value1>1&&VR_value1<=2) {
Pumipachpro 2:8b6312dbfd2f 254 //base2
Pumipachpro 2:8b6312dbfd2f 255 BaseColorUpper(1,color);
Pumipachpro 2:8b6312dbfd2f 256 return 2;
Pumipachpro 2:8b6312dbfd2f 257 } else if(VR_value1>2&&VR_value1<=3) {
Pumipachpro 2:8b6312dbfd2f 258 //base3
Pumipachpro 2:8b6312dbfd2f 259 BaseColorUpper(2,color);
Pumipachpro 2:8b6312dbfd2f 260 return 3;
Pumipachpro 2:8b6312dbfd2f 261 } else if(VR_value1>3&&VR_value1<=4) {
Pumipachpro 2:8b6312dbfd2f 262 //base4
Pumipachpro 2:8b6312dbfd2f 263 BaseColorUpper(3,color);
Pumipachpro 2:8b6312dbfd2f 264 return 4;
Pumipachpro 2:8b6312dbfd2f 265 } else if(VR_value1>4&&VR_value1<=5) {
Pumipachpro 2:8b6312dbfd2f 266 //base5
Pumipachpro 2:8b6312dbfd2f 267 BaseColorUpper(4,color);
Pumipachpro 2:8b6312dbfd2f 268 return 5;
Pumipachpro 2:8b6312dbfd2f 269 } else if(VR_value1>5&&VR_value1<=6) {
Pumipachpro 2:8b6312dbfd2f 270 //base4
Pumipachpro 2:8b6312dbfd2f 271 BaseColorUpper(5,color);
Pumipachpro 2:8b6312dbfd2f 272 return 6;
Pumipachpro 2:8b6312dbfd2f 273 }
Pumipachpro 2:8b6312dbfd2f 274 }
Pumipachpro 2:8b6312dbfd2f 275
lolopo008 4:3605c624b64f 276 int UnderStart(int color)
lolopo008 4:3605c624b64f 277 {
lolopo008 4:3605c624b64f 278 down=BaseUnder(color);
lolopo008 4:3605c624b64f 279 Latch=0;
lolopo008 4:3605c624b64f 280 DataPack.write(Col[down]);
lolopo008 4:3605c624b64f 281 wait_us(1);
lolopo008 4:3605c624b64f 282 DataPack.write(0xFF);
lolopo008 4:3605c624b64f 283 wait_us(1);
lolopo008 4:3605c624b64f 284 DataPack.write(Col[down]);
lolopo008 4:3605c624b64f 285 wait_us(1);
lolopo008 4:3605c624b64f 286 DataPack.write(Row[1]);
lolopo008 4:3605c624b64f 287 wait_us(1);
lolopo008 4:3605c624b64f 288 Latch=1;
lolopo008 4:3605c624b64f 289 if(UnderButton==1) {
lolopo008 4:3605c624b64f 290 x=down;
lolopo008 4:3605c624b64f 291 return 1;
lolopo008 4:3605c624b64f 292 } else return 0;
lolopo008 4:3605c624b64f 293 }
lolopo008 4:3605c624b64f 294
lolopo008 4:3605c624b64f 295 int UpperStart(int color)
lolopo008 4:3605c624b64f 296 {
lolopo008 4:3605c624b64f 297 up=BaseUpper(color);
lolopo008 4:3605c624b64f 298 Latch=0;
lolopo008 4:3605c624b64f 299 DataPack.write(Col[up]);
lolopo008 4:3605c624b64f 300 wait_us(1);
lolopo008 4:3605c624b64f 301 DataPack.write(0xFF);
lolopo008 4:3605c624b64f 302 wait_us(1);
lolopo008 4:3605c624b64f 303 DataPack.write(Col[up]);
lolopo008 4:3605c624b64f 304 wait_us(1);
lolopo008 4:3605c624b64f 305 DataPack.write(Row[6]);
lolopo008 4:3605c624b64f 306 wait_us(1);
lolopo008 4:3605c624b64f 307 Latch=1;
lolopo008 4:3605c624b64f 308 if(UpperButton==1) {
lolopo008 4:3605c624b64f 309 x=up;
lolopo008 4:3605c624b64f 310 return 1;
lolopo008 4:3605c624b64f 311 } else return 0;
lolopo008 4:3605c624b64f 312 }
lolopo008 4:3605c624b64f 313
lolopo008 4:3605c624b64f 314 void uplose(int x)
lolopo008 4:3605c624b64f 315 {
lolopo008 4:3605c624b64f 316 Latch=0;
lolopo008 4:3605c624b64f 317 DataPack.write(0xFF);
lolopo008 4:3605c624b64f 318 wait_us(1);
lolopo008 4:3605c624b64f 319 DataPack.write(0xFF);
lolopo008 4:3605c624b64f 320 wait_us(1);
lolopo008 4:3605c624b64f 321 DataPack.write(Col[x]);
lolopo008 4:3605c624b64f 322 wait_us(1);
lolopo008 4:3605c624b64f 323 DataPack.write(0x80);
lolopo008 4:3605c624b64f 324 wait_us(1);
lolopo008 4:3605c624b64f 325 Latch=1;
lolopo008 4:3605c624b64f 326 wait_ms(500);
lolopo008 4:3605c624b64f 327
lolopo008 4:3605c624b64f 328 }
lolopo008 4:3605c624b64f 329
lolopo008 4:3605c624b64f 330 void downlose(int x)
lolopo008 4:3605c624b64f 331 {
lolopo008 4:3605c624b64f 332 Latch=0;
lolopo008 4:3605c624b64f 333 DataPack.write(0xFF);
lolopo008 4:3605c624b64f 334 wait_us(1);
lolopo008 4:3605c624b64f 335 DataPack.write(0xFF);
lolopo008 4:3605c624b64f 336 wait_us(1);
lolopo008 4:3605c624b64f 337 DataPack.write(Col[x]);
lolopo008 4:3605c624b64f 338 wait_us(1);
lolopo008 4:3605c624b64f 339 DataPack.write(0x01);
lolopo008 4:3605c624b64f 340 wait_us(1);
lolopo008 4:3605c624b64f 341 Latch=1;
lolopo008 4:3605c624b64f 342 wait_ms(500);
lolopo008 4:3605c624b64f 343 }
lolopo008 4:3605c624b64f 344
Pumipachpro 2:8b6312dbfd2f 345 int main()
Pumipachpro 2:8b6312dbfd2f 346 {
lolopo008 3:054a677aca64 347
Pumipachpro 0:e282add6146d 348 DataPack.frequency(100000);
Pumipachpro 0:e282add6146d 349 DataPack.format(8,0);
lolopo008 3:054a677aca64 350 way=0;
lolopo008 4:3605c624b64f 351 srand(time(NULL));
lolopo008 4:3605c624b64f 352 int chk,lifeup=2,lifeun=2;
lolopo008 3:054a677aca64 353
lolopo008 4:3605c624b64f 354 chk=ran.read()*1000;
lolopo008 4:3605c624b64f 355 chk=chk%2;
lolopo008 3:054a677aca64 356
lolopo008 4:3605c624b64f 357 //Count();
lolopo008 4:3605c624b64f 358 while(1) {
lolopo008 4:3605c624b64f 359 while(1) {
lolopo008 4:3605c624b64f 360 if(chk==0) {
lolopo008 4:3605c624b64f 361 if(UnderStart(lifeun)==1) {
lolopo008 4:3605c624b64f 362 break;
lolopo008 4:3605c624b64f 363 }
lolopo008 4:3605c624b64f 364 BaseUpper(lifeup);
lolopo008 4:3605c624b64f 365 }
lolopo008 4:3605c624b64f 366 if(chk==1) {
lolopo008 4:3605c624b64f 367 if(UpperStart(lifeup)==1) {
lolopo008 4:3605c624b64f 368 break;
lolopo008 4:3605c624b64f 369 }
lolopo008 4:3605c624b64f 370 BaseUnder(lifeun);
lolopo008 3:054a677aca64 371 }
lolopo008 3:054a677aca64 372 }
lolopo008 4:3605c624b64f 373 while(1) {
lolopo008 4:3605c624b64f 374 if(chk==0) {
lolopo008 4:3605c624b64f 375 for(y=2; y<7; y++) {
lolopo008 4:3605c624b64f 376 if(x>6||x<1) {
lolopo008 4:3605c624b64f 377 way=way*-1;
lolopo008 4:3605c624b64f 378 }
lolopo008 3:054a677aca64 379
lolopo008 4:3605c624b64f 380 x=x+way;
lolopo008 4:3605c624b64f 381 for(t=0; t<800; t++) {
lolopo008 4:3605c624b64f 382 BaseUnder(lifeun);
lolopo008 4:3605c624b64f 383 up=BaseUpper(lifeup);
lolopo008 4:3605c624b64f 384
lolopo008 4:3605c624b64f 385 Latch=0;
lolopo008 4:3605c624b64f 386 DataPack.write(Col[x]);
lolopo008 4:3605c624b64f 387 wait_us(1);
lolopo008 4:3605c624b64f 388 DataPack.write(0xFF);
lolopo008 4:3605c624b64f 389 wait_us(1);
lolopo008 4:3605c624b64f 390 DataPack.write(Col[x]);
lolopo008 4:3605c624b64f 391 wait_us(1);
lolopo008 4:3605c624b64f 392 DataPack.write(Row[y]);
lolopo008 4:3605c624b64f 393 wait_us(1);
lolopo008 4:3605c624b64f 394 Latch=1;
lolopo008 4:3605c624b64f 395 }
lolopo008 4:3605c624b64f 396 }
lolopo008 4:3605c624b64f 397 chk=1;
lolopo008 4:3605c624b64f 398 }
lolopo008 4:3605c624b64f 399
lolopo008 4:3605c624b64f 400 if(x==0) {
lolopo008 4:3605c624b64f 401 if(up>1) {
lolopo008 4:3605c624b64f 402 lifeup=lifeup-1;
lolopo008 4:3605c624b64f 403 uplose(x);
lolopo008 4:3605c624b64f 404 break;
lolopo008 4:3605c624b64f 405 }
lolopo008 4:3605c624b64f 406 way=-1;
lolopo008 4:3605c624b64f 407 }
lolopo008 4:3605c624b64f 408 if(x==1) {
lolopo008 4:3605c624b64f 409 if(up>2) {
lolopo008 4:3605c624b64f 410 lifeup=lifeup-1;
lolopo008 4:3605c624b64f 411 uplose(x);
lolopo008 4:3605c624b64f 412 break;
lolopo008 4:3605c624b64f 413 } else if(up==1) {
lolopo008 4:3605c624b64f 414 way=0;
lolopo008 4:3605c624b64f 415 } else way=-1;
lolopo008 3:054a677aca64 416 }
lolopo008 4:3605c624b64f 417 if(x==2) {
lolopo008 4:3605c624b64f 418 if(up>3) {
lolopo008 4:3605c624b64f 419 lifeup=lifeup-1;
lolopo008 4:3605c624b64f 420 uplose(x);
lolopo008 4:3605c624b64f 421 break;
lolopo008 4:3605c624b64f 422 } else if(up==1) {
lolopo008 4:3605c624b64f 423 way=1;
lolopo008 4:3605c624b64f 424 } else if(up==2) {
lolopo008 4:3605c624b64f 425 way=0;
lolopo008 4:3605c624b64f 426 } else way=-1;
lolopo008 4:3605c624b64f 427 }
lolopo008 4:3605c624b64f 428 if(x==3) {
lolopo008 4:3605c624b64f 429 if(up<2||up>4) {
lolopo008 4:3605c624b64f 430 lifeup=lifeup-1;
lolopo008 4:3605c624b64f 431 uplose(x);
lolopo008 4:3605c624b64f 432 break;
lolopo008 4:3605c624b64f 433 } else if(up==2) {
lolopo008 4:3605c624b64f 434 way=1;
lolopo008 4:3605c624b64f 435 } else if(up==3) {
lolopo008 4:3605c624b64f 436 way=0;
lolopo008 4:3605c624b64f 437 } else way=-1;
lolopo008 4:3605c624b64f 438 }
lolopo008 4:3605c624b64f 439 if(x==4) {
lolopo008 4:3605c624b64f 440 if(up<3||up>5) {
lolopo008 4:3605c624b64f 441 lifeup=lifeup-1;
lolopo008 4:3605c624b64f 442 uplose(x);
lolopo008 4:3605c624b64f 443 break;
lolopo008 4:3605c624b64f 444 } else if(up==3) {
lolopo008 4:3605c624b64f 445 way=1;
lolopo008 4:3605c624b64f 446 } else if(up==4) {
lolopo008 4:3605c624b64f 447 way=0;
lolopo008 4:3605c624b64f 448 } else way=-1;
lolopo008 4:3605c624b64f 449 }
lolopo008 4:3605c624b64f 450 if(x==5) {
lolopo008 4:3605c624b64f 451 if(up<4) {
lolopo008 4:3605c624b64f 452 lifeup=lifeup-1;
lolopo008 4:3605c624b64f 453 uplose(x);
lolopo008 4:3605c624b64f 454 break;
lolopo008 4:3605c624b64f 455 } else if(up==4) {
lolopo008 4:3605c624b64f 456 way=1;
lolopo008 4:3605c624b64f 457 } else if(up==5) {
lolopo008 4:3605c624b64f 458 way=0;
lolopo008 4:3605c624b64f 459 } else way=-1;
lolopo008 4:3605c624b64f 460 }
lolopo008 4:3605c624b64f 461 if(x==6) {
lolopo008 4:3605c624b64f 462 if(up<5) {
lolopo008 4:3605c624b64f 463 lifeup=lifeup-1;
lolopo008 4:3605c624b64f 464 uplose(x);
lolopo008 4:3605c624b64f 465 break;
lolopo008 4:3605c624b64f 466 } else if(up==5) {
lolopo008 4:3605c624b64f 467 way=1;
lolopo008 4:3605c624b64f 468 } else way=0;
lolopo008 4:3605c624b64f 469 }
lolopo008 4:3605c624b64f 470 if(x==7) {
lolopo008 4:3605c624b64f 471 if(up<6) {
lolopo008 4:3605c624b64f 472 lifeup=lifeup-1;
lolopo008 4:3605c624b64f 473 uplose(x);
lolopo008 4:3605c624b64f 474 break;
lolopo008 4:3605c624b64f 475 }
lolopo008 3:054a677aca64 476 way=1;
lolopo008 3:054a677aca64 477 }
lolopo008 3:054a677aca64 478
lolopo008 4:3605c624b64f 479 if(chk==1) {
lolopo008 4:3605c624b64f 480 for(y=5; y>0; y--) {
lolopo008 4:3605c624b64f 481
lolopo008 4:3605c624b64f 482 if(x>6||x<1) {
lolopo008 4:3605c624b64f 483 way=way*-1;
lolopo008 4:3605c624b64f 484 }
lolopo008 4:3605c624b64f 485
lolopo008 4:3605c624b64f 486 x=x+way;
lolopo008 4:3605c624b64f 487 for(t=0; t<800; t++) {
lolopo008 4:3605c624b64f 488 down=BaseUnder(lifeun);
lolopo008 4:3605c624b64f 489 BaseUpper(lifeup);
lolopo008 3:054a677aca64 490
lolopo008 4:3605c624b64f 491 Latch=0;
lolopo008 4:3605c624b64f 492 DataPack.write(Col[x]);
lolopo008 4:3605c624b64f 493 wait_us(1);
lolopo008 4:3605c624b64f 494 DataPack.write(0xFF);
lolopo008 4:3605c624b64f 495 wait_us(1);
lolopo008 4:3605c624b64f 496 DataPack.write(Col[x]);
lolopo008 4:3605c624b64f 497 wait_us(1);
lolopo008 4:3605c624b64f 498 DataPack.write(Row[y]);
lolopo008 4:3605c624b64f 499 wait_us(1);
lolopo008 4:3605c624b64f 500 Latch=1;
lolopo008 4:3605c624b64f 501 }
lolopo008 4:3605c624b64f 502 }
lolopo008 4:3605c624b64f 503 chk=0;
lolopo008 3:054a677aca64 504 }
lolopo008 3:054a677aca64 505
lolopo008 4:3605c624b64f 506 if(x==0) {
lolopo008 4:3605c624b64f 507 if(down>1) {
lolopo008 4:3605c624b64f 508 lifeun=lifeun-1;
lolopo008 4:3605c624b64f 509 downlose(x);
lolopo008 4:3605c624b64f 510 break;
lolopo008 4:3605c624b64f 511 }
lolopo008 4:3605c624b64f 512 way=-1;
lolopo008 4:3605c624b64f 513 }
lolopo008 4:3605c624b64f 514 if(x==1) {
lolopo008 4:3605c624b64f 515 if(down>2) {
lolopo008 4:3605c624b64f 516 lifeun=lifeun-1;
lolopo008 4:3605c624b64f 517 downlose(x);
lolopo008 4:3605c624b64f 518 break;
lolopo008 4:3605c624b64f 519 } else if(down==1) {
lolopo008 4:3605c624b64f 520 way=0;
lolopo008 4:3605c624b64f 521 } else way=-1;
lolopo008 4:3605c624b64f 522 }
lolopo008 4:3605c624b64f 523 if(x==2) {
lolopo008 4:3605c624b64f 524 if(down>3) {
lolopo008 4:3605c624b64f 525 lifeun=lifeun-1;
lolopo008 4:3605c624b64f 526 downlose(x);
lolopo008 4:3605c624b64f 527 break;
lolopo008 4:3605c624b64f 528 } else if(down==1) {
lolopo008 4:3605c624b64f 529 way=1;
lolopo008 4:3605c624b64f 530 } else if(down==2) {
lolopo008 4:3605c624b64f 531 way=0;
lolopo008 4:3605c624b64f 532 } else way=-1;
lolopo008 4:3605c624b64f 533 }
lolopo008 4:3605c624b64f 534 if(x==3) {
lolopo008 4:3605c624b64f 535 if(down<2||down>4) {
lolopo008 4:3605c624b64f 536 lifeun=lifeun-1;
lolopo008 4:3605c624b64f 537 downlose(x);
lolopo008 4:3605c624b64f 538 break;
lolopo008 4:3605c624b64f 539 } else if(down==2) {
lolopo008 4:3605c624b64f 540 way=1;
lolopo008 4:3605c624b64f 541 } else if(down==3) {
lolopo008 4:3605c624b64f 542 way=0;
lolopo008 4:3605c624b64f 543 } else way=-1;
lolopo008 3:054a677aca64 544 }
lolopo008 4:3605c624b64f 545 if(x==4) {
lolopo008 4:3605c624b64f 546 if(down<3||down>5) {
lolopo008 4:3605c624b64f 547 lifeun=lifeun-1;
lolopo008 4:3605c624b64f 548 downlose(x);
lolopo008 4:3605c624b64f 549 break;
lolopo008 4:3605c624b64f 550 } else if(down==3) {
lolopo008 4:3605c624b64f 551 way=1;
lolopo008 4:3605c624b64f 552 } else if(down==4) {
lolopo008 4:3605c624b64f 553 way=0;
lolopo008 4:3605c624b64f 554 } else way=-1;
lolopo008 4:3605c624b64f 555 }
lolopo008 4:3605c624b64f 556 if(x==5) {
lolopo008 4:3605c624b64f 557 if(down<4) {
lolopo008 4:3605c624b64f 558 lifeun=lifeun-1;
lolopo008 4:3605c624b64f 559 downlose(x);
lolopo008 4:3605c624b64f 560 break;
lolopo008 4:3605c624b64f 561 } else if(down==4) {
lolopo008 4:3605c624b64f 562 way=1;
lolopo008 4:3605c624b64f 563 } else if(down==5) {
lolopo008 4:3605c624b64f 564 way=0;
lolopo008 4:3605c624b64f 565 } else way=-1;
lolopo008 4:3605c624b64f 566 }
lolopo008 4:3605c624b64f 567 if(x==6) {
lolopo008 4:3605c624b64f 568 if(down<5) {
lolopo008 4:3605c624b64f 569 lifeun=lifeun-1;
lolopo008 4:3605c624b64f 570 downlose(x);
lolopo008 4:3605c624b64f 571 break;
lolopo008 4:3605c624b64f 572 } else if(down==5) {
lolopo008 4:3605c624b64f 573 way=1;
lolopo008 4:3605c624b64f 574 } else way=0;
lolopo008 4:3605c624b64f 575 }
lolopo008 4:3605c624b64f 576 if(x==7) {
lolopo008 4:3605c624b64f 577 if(down<6) {
lolopo008 4:3605c624b64f 578 lifeun=lifeun-1;
lolopo008 4:3605c624b64f 579 downlose(x);
lolopo008 4:3605c624b64f 580 break;
lolopo008 4:3605c624b64f 581 }
lolopo008 3:054a677aca64 582 way=1;
lolopo008 4:3605c624b64f 583 }
lolopo008 4:3605c624b64f 584
lolopo008 3:054a677aca64 585 }
lolopo008 4:3605c624b64f 586 if(lifeup<0) {
lolopo008 4:3605c624b64f 587 while(UnderButton==0&&UpperButton==0) {
lolopo008 4:3605c624b64f 588
lolopo008 4:3605c624b64f 589 }
lolopo008 4:3605c624b64f 590 lifeup=2;
lolopo008 4:3605c624b64f 591 lifeun=2;
lolopo008 3:054a677aca64 592 }
lolopo008 4:3605c624b64f 593 if(lifeun<0) {
lolopo008 4:3605c624b64f 594 while(UnderButton==0&&UpperButton==0) {
lolopo008 4:3605c624b64f 595
lolopo008 4:3605c624b64f 596 }
lolopo008 4:3605c624b64f 597 lifeup=2;
lolopo008 4:3605c624b64f 598 lifeun=2;
lolopo008 3:054a677aca64 599 }
Pumipachpro 2:8b6312dbfd2f 600 }
Pumipachpro 0:e282add6146d 601 }