Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
Fork of Project_PokPakGame by
main.cpp@4:3605c624b64f, 2015-12-05 (annotated)
- 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?
User | Revision | Line number | New 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 | } |