This program is for LB circuit(LED Martix 8 x 8) x 3 with mbed.

Dependencies:   mbed

Committer:
y_notsu
Date:
Thu Sep 08 13:20:52 2011 +0000
Revision:
0:440d08e0dbbc
ver.1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
y_notsu 0:440d08e0dbbc 1 #include "mbed.h"
y_notsu 0:440d08e0dbbc 2
y_notsu 0:440d08e0dbbc 3 DigitalOut myled(LED1);
y_notsu 0:440d08e0dbbc 4 DigitalOut myled2(LED2);
y_notsu 0:440d08e0dbbc 5 SPI spi(p5, p6, p7); // mosi, miso, sclk
y_notsu 0:440d08e0dbbc 6 DigitalOut LEDRSTN(p30); //for Reset(Slot1)
y_notsu 0:440d08e0dbbc 7 DigitalOut LEDLATCH(p29); //for LATCH(Slot1)
y_notsu 0:440d08e0dbbc 8 DigitalOut LED2RSTN(p21); //for Reset(Slot2)
y_notsu 0:440d08e0dbbc 9 DigitalOut LED2LATCH(p22); //for LATCH(Slot2)
y_notsu 0:440d08e0dbbc 10 DigitalOut LED3RSTN(p23); //for Reset(Slot3)
y_notsu 0:440d08e0dbbc 11 DigitalOut LED3LATCH(p24); //for LATCH(Slot3)
y_notsu 0:440d08e0dbbc 12 Ticker flipper;
y_notsu 0:440d08e0dbbc 13
y_notsu 0:440d08e0dbbc 14 //====================
y_notsu 0:440d08e0dbbc 15 // Global : LED Array
y_notsu 0:440d08e0dbbc 16 //====================
y_notsu 0:440d08e0dbbc 17 // for each element
y_notsu 0:440d08e0dbbc 18 // bit1 : Green
y_notsu 0:440d08e0dbbc 19 // bit0 : Red
y_notsu 0:440d08e0dbbc 20 int gLED_ARRAY[8][8];
y_notsu 0:440d08e0dbbc 21 int gLED2_ARRAY[8][8];
y_notsu 0:440d08e0dbbc 22 int gLED3_ARRAY[8][8];
y_notsu 0:440d08e0dbbc 23
y_notsu 0:440d08e0dbbc 24 void Init_LED_Array(void)
y_notsu 0:440d08e0dbbc 25 {
y_notsu 0:440d08e0dbbc 26 // Setup the spi for 8 bit data, high steady state clock,
y_notsu 0:440d08e0dbbc 27 // second edge capture, with a 1MHz clock rate
y_notsu 0:440d08e0dbbc 28 spi.format(8,3);
y_notsu 0:440d08e0dbbc 29 spi.frequency(100000);
y_notsu 0:440d08e0dbbc 30 int x=0;
y_notsu 0:440d08e0dbbc 31 int y=0;
y_notsu 0:440d08e0dbbc 32
y_notsu 0:440d08e0dbbc 33 LEDRSTN = 0;
y_notsu 0:440d08e0dbbc 34 LED2RSTN = 0;
y_notsu 0:440d08e0dbbc 35 LED3RSTN = 0;
y_notsu 0:440d08e0dbbc 36 wait(0.1);
y_notsu 0:440d08e0dbbc 37 LEDRSTN = 1;
y_notsu 0:440d08e0dbbc 38 LED2RSTN = 1;
y_notsu 0:440d08e0dbbc 39 LED3RSTN = 1;
y_notsu 0:440d08e0dbbc 40 // Clear LED Array Buffer
y_notsu 0:440d08e0dbbc 41 for (y = 0; y < 8; y++)
y_notsu 0:440d08e0dbbc 42 {
y_notsu 0:440d08e0dbbc 43 for (x = 0; x < 8; x++)
y_notsu 0:440d08e0dbbc 44 {
y_notsu 0:440d08e0dbbc 45 gLED_ARRAY[y][x] = 0;
y_notsu 0:440d08e0dbbc 46 gLED2_ARRAY[y][x] = 0;
y_notsu 0:440d08e0dbbc 47 gLED3_ARRAY[y][x] = 0;
y_notsu 0:440d08e0dbbc 48 }
y_notsu 0:440d08e0dbbc 49 }
y_notsu 0:440d08e0dbbc 50 }
y_notsu 0:440d08e0dbbc 51
y_notsu 0:440d08e0dbbc 52 //==================
y_notsu 0:440d08e0dbbc 53 // Scan LED Array
y_notsu 0:440d08e0dbbc 54 //==================
y_notsu 0:440d08e0dbbc 55 // Caller of TIMER16_0_IRQHandler()
y_notsu 0:440d08e0dbbc 56 void Scan_LED_Array(void)
y_notsu 0:440d08e0dbbc 57 {
y_notsu 0:440d08e0dbbc 58 static int x = 0,x2=0,x3=0;
y_notsu 0:440d08e0dbbc 59 int y;
y_notsu 0:440d08e0dbbc 60 int row,row2,row3;
y_notsu 0:440d08e0dbbc 61 int col_LED_ARRAY_RED,col_LED_ARRAY_RED2,col_LED_ARRAY_RED3;
y_notsu 0:440d08e0dbbc 62 int col_LED_ARRAY_GRN,col_LED_ARRAY_GRN2,col_LED_ARRAY_GRN3;
y_notsu 0:440d08e0dbbc 63
y_notsu 0:440d08e0dbbc 64 row = 1 << x;
y_notsu 0:440d08e0dbbc 65 row2 = 1 <<x2;
y_notsu 0:440d08e0dbbc 66 row3 = 1 <<x3;
y_notsu 0:440d08e0dbbc 67 //
y_notsu 0:440d08e0dbbc 68 col_LED_ARRAY_RED = 0;
y_notsu 0:440d08e0dbbc 69 col_LED_ARRAY_RED2 = 0;
y_notsu 0:440d08e0dbbc 70 col_LED_ARRAY_RED3 = 0;
y_notsu 0:440d08e0dbbc 71 for (y = 0; y < 8; y++)
y_notsu 0:440d08e0dbbc 72 {
y_notsu 0:440d08e0dbbc 73 col_LED_ARRAY_RED = col_LED_ARRAY_RED | ((gLED_ARRAY[y][x] & 0x01) << (7 - y));
y_notsu 0:440d08e0dbbc 74 col_LED_ARRAY_RED2 = col_LED_ARRAY_RED2 | ((gLED2_ARRAY[y][x2] & 0x01) << (7 - y));
y_notsu 0:440d08e0dbbc 75 col_LED_ARRAY_RED3 = col_LED_ARRAY_RED3 | ((gLED3_ARRAY[y][x3] & 0x01) << (7 - y));
y_notsu 0:440d08e0dbbc 76 }
y_notsu 0:440d08e0dbbc 77 //
y_notsu 0:440d08e0dbbc 78 col_LED_ARRAY_GRN = 0;
y_notsu 0:440d08e0dbbc 79 col_LED_ARRAY_GRN2 = 0;
y_notsu 0:440d08e0dbbc 80 col_LED_ARRAY_GRN3 = 0;
y_notsu 0:440d08e0dbbc 81 for (y = 0; y < 8; y++)
y_notsu 0:440d08e0dbbc 82 {
y_notsu 0:440d08e0dbbc 83 col_LED_ARRAY_GRN = col_LED_ARRAY_GRN | (((gLED_ARRAY[y][x] & 0x02) >> 1) << (7 - y));
y_notsu 0:440d08e0dbbc 84 col_LED_ARRAY_GRN2 = col_LED_ARRAY_GRN2 | (((gLED2_ARRAY[y][x] & 0x02) >> 1) << (7 - y));
y_notsu 0:440d08e0dbbc 85 col_LED_ARRAY_GRN3 = col_LED_ARRAY_GRN3 | (((gLED3_ARRAY[y][x] & 0x02) >> 1) << (7 - y));
y_notsu 0:440d08e0dbbc 86 }
y_notsu 0:440d08e0dbbc 87 //
y_notsu 0:440d08e0dbbc 88 spi.write(row);
y_notsu 0:440d08e0dbbc 89 spi.write(col_LED_ARRAY_RED);
y_notsu 0:440d08e0dbbc 90 spi.write(col_LED_ARRAY_GRN);
y_notsu 0:440d08e0dbbc 91
y_notsu 0:440d08e0dbbc 92 //
y_notsu 0:440d08e0dbbc 93 LEDLATCH=1; // high
y_notsu 0:440d08e0dbbc 94 LEDLATCH=0; // low (latch)
y_notsu 0:440d08e0dbbc 95 //
y_notsu 0:440d08e0dbbc 96 spi.write(row2);
y_notsu 0:440d08e0dbbc 97 spi.write(col_LED_ARRAY_RED2);
y_notsu 0:440d08e0dbbc 98 spi.write(col_LED_ARRAY_GRN2);
y_notsu 0:440d08e0dbbc 99 //
y_notsu 0:440d08e0dbbc 100 LED2LATCH=1;
y_notsu 0:440d08e0dbbc 101 LED2LATCH=0;
y_notsu 0:440d08e0dbbc 102 //
y_notsu 0:440d08e0dbbc 103 spi.write(row3);
y_notsu 0:440d08e0dbbc 104 spi.write(col_LED_ARRAY_RED3);
y_notsu 0:440d08e0dbbc 105 spi.write(col_LED_ARRAY_GRN3);
y_notsu 0:440d08e0dbbc 106 //
y_notsu 0:440d08e0dbbc 107 LED3LATCH=1;
y_notsu 0:440d08e0dbbc 108 LED3LATCH=0;
y_notsu 0:440d08e0dbbc 109
y_notsu 0:440d08e0dbbc 110 x = (x + 1) & 0x07;
y_notsu 0:440d08e0dbbc 111 x2 = (x2+1) & 0x07;
y_notsu 0:440d08e0dbbc 112 x3 = (x3+1) & 0x07;
y_notsu 0:440d08e0dbbc 113 }
y_notsu 0:440d08e0dbbc 114
y_notsu 0:440d08e0dbbc 115 //===================
y_notsu 0:440d08e0dbbc 116 // Set LED Array
y_notsu 0:440d08e0dbbc 117 //===================
y_notsu 0:440d08e0dbbc 118 void Set_LED_Array(int x, int y, int color)
y_notsu 0:440d08e0dbbc 119 {
y_notsu 0:440d08e0dbbc 120 gLED_ARRAY[y][x] = color;
y_notsu 0:440d08e0dbbc 121 }
y_notsu 0:440d08e0dbbc 122
y_notsu 0:440d08e0dbbc 123 void Set_LED2_Array(int x, int y, int color)
y_notsu 0:440d08e0dbbc 124 {
y_notsu 0:440d08e0dbbc 125 gLED2_ARRAY[y][x] = color;
y_notsu 0:440d08e0dbbc 126 }
y_notsu 0:440d08e0dbbc 127
y_notsu 0:440d08e0dbbc 128 void Set_LED3_Array(int x, int y, int color)
y_notsu 0:440d08e0dbbc 129 {
y_notsu 0:440d08e0dbbc 130 gLED3_ARRAY[y][x] = color;
y_notsu 0:440d08e0dbbc 131 }
y_notsu 0:440d08e0dbbc 132
y_notsu 0:440d08e0dbbc 133
y_notsu 0:440d08e0dbbc 134 //Interrupt Handler
y_notsu 0:440d08e0dbbc 135 void scanLED(void)
y_notsu 0:440d08e0dbbc 136 {
y_notsu 0:440d08e0dbbc 137 Scan_LED_Array();
y_notsu 0:440d08e0dbbc 138 }
y_notsu 0:440d08e0dbbc 139
y_notsu 0:440d08e0dbbc 140
y_notsu 0:440d08e0dbbc 141 int main() {
y_notsu 0:440d08e0dbbc 142 Init_LED_Array();
y_notsu 0:440d08e0dbbc 143 flipper.attach(&scanLED,0.001);
y_notsu 0:440d08e0dbbc 144 while(1) {
y_notsu 0:440d08e0dbbc 145 myled = 1;
y_notsu 0:440d08e0dbbc 146 myled2=0;
y_notsu 0:440d08e0dbbc 147 Set_LED_Array(5,0,0x01);
y_notsu 0:440d08e0dbbc 148 Set_LED_Array(2,1,0x01);
y_notsu 0:440d08e0dbbc 149 Set_LED_Array(3,1,0x01);
y_notsu 0:440d08e0dbbc 150 Set_LED_Array(4,1,0x01);
y_notsu 0:440d08e0dbbc 151 Set_LED_Array(5,1,0x01);
y_notsu 0:440d08e0dbbc 152 Set_LED_Array(6,1,0x01);
y_notsu 0:440d08e0dbbc 153 Set_LED_Array(7,1,0x01);
y_notsu 0:440d08e0dbbc 154 Set_LED_Array(5,2,0x01);
y_notsu 0:440d08e0dbbc 155 Set_LED_Array(3,3,0x01);
y_notsu 0:440d08e0dbbc 156 Set_LED_Array(4,3,0x01);
y_notsu 0:440d08e0dbbc 157 Set_LED_Array(5,3,0x01);
y_notsu 0:440d08e0dbbc 158 Set_LED_Array(6,3,0x01);
y_notsu 0:440d08e0dbbc 159 Set_LED_Array(7,3,0x01);
y_notsu 0:440d08e0dbbc 160 Set_LED_Array(5,4,0x01);
y_notsu 0:440d08e0dbbc 161 Set_LED_Array(2,5,0x01);
y_notsu 0:440d08e0dbbc 162 Set_LED_Array(3,5,0x01);
y_notsu 0:440d08e0dbbc 163 Set_LED_Array(4,5,0x01);
y_notsu 0:440d08e0dbbc 164 Set_LED_Array(5,5,0x01);
y_notsu 0:440d08e0dbbc 165 Set_LED_Array(1,6,0x01);
y_notsu 0:440d08e0dbbc 166 Set_LED_Array(5,6,0x01);
y_notsu 0:440d08e0dbbc 167 Set_LED_Array(6,6,0x01);
y_notsu 0:440d08e0dbbc 168 Set_LED_Array(2,7,0x01);
y_notsu 0:440d08e0dbbc 169 Set_LED_Array(3,7,0x01);
y_notsu 0:440d08e0dbbc 170 Set_LED_Array(4,7,0x01);
y_notsu 0:440d08e0dbbc 171 Set_LED_Array(7,7,0x01);
y_notsu 0:440d08e0dbbc 172 Set_LED2_Array(1,3,0x01);
y_notsu 0:440d08e0dbbc 173 Set_LED2_Array(2,3,0x01);
y_notsu 0:440d08e0dbbc 174 Set_LED2_Array(3,3,0x01);
y_notsu 0:440d08e0dbbc 175 Set_LED2_Array(4,3,0x01);
y_notsu 0:440d08e0dbbc 176 Set_LED2_Array(5,3,0x01);
y_notsu 0:440d08e0dbbc 177 Set_LED2_Array(6,4,0x01);
y_notsu 0:440d08e0dbbc 178 Set_LED2_Array(6,5,0x01);
y_notsu 0:440d08e0dbbc 179 Set_LED2_Array(6,6,0x01);
y_notsu 0:440d08e0dbbc 180 Set_LED2_Array(3,7,0x01);
y_notsu 0:440d08e0dbbc 181 Set_LED2_Array(4,7,0x01);
y_notsu 0:440d08e0dbbc 182 Set_LED2_Array(5,7,0x01);
y_notsu 0:440d08e0dbbc 183 Set_LED3_Array(5,0,0x01);
y_notsu 0:440d08e0dbbc 184 Set_LED3_Array(4,1,0x01);
y_notsu 0:440d08e0dbbc 185 Set_LED3_Array(3,2,0x01);
y_notsu 0:440d08e0dbbc 186 Set_LED3_Array(2,3,0x01);
y_notsu 0:440d08e0dbbc 187 Set_LED3_Array(2,4,0x01);
y_notsu 0:440d08e0dbbc 188 Set_LED3_Array(3,5,0x01);
y_notsu 0:440d08e0dbbc 189 Set_LED3_Array(4,6,0x01);
y_notsu 0:440d08e0dbbc 190 Set_LED3_Array(5,7,0x01);
y_notsu 0:440d08e0dbbc 191 wait(1.5);
y_notsu 0:440d08e0dbbc 192 myled = 0;
y_notsu 0:440d08e0dbbc 193 myled2=1;
y_notsu 0:440d08e0dbbc 194 Set_LED_Array(5,0,0x02);
y_notsu 0:440d08e0dbbc 195 Set_LED_Array(2,1,0x02);
y_notsu 0:440d08e0dbbc 196 Set_LED_Array(3,1,0x02);
y_notsu 0:440d08e0dbbc 197 Set_LED_Array(4,1,0x02);
y_notsu 0:440d08e0dbbc 198 Set_LED_Array(5,1,0x02);
y_notsu 0:440d08e0dbbc 199 Set_LED_Array(6,1,0x02);
y_notsu 0:440d08e0dbbc 200 Set_LED_Array(7,1,0x02);
y_notsu 0:440d08e0dbbc 201 Set_LED_Array(5,2,0x02);
y_notsu 0:440d08e0dbbc 202 Set_LED_Array(3,3,0x02);
y_notsu 0:440d08e0dbbc 203 Set_LED_Array(4,3,0x02);
y_notsu 0:440d08e0dbbc 204 Set_LED_Array(5,3,0x02);
y_notsu 0:440d08e0dbbc 205 Set_LED_Array(6,3,0x02);
y_notsu 0:440d08e0dbbc 206 Set_LED_Array(7,3,0x02);
y_notsu 0:440d08e0dbbc 207 Set_LED_Array(5,4,0x02);
y_notsu 0:440d08e0dbbc 208 Set_LED_Array(2,5,0x02);
y_notsu 0:440d08e0dbbc 209 Set_LED_Array(3,5,0x02);
y_notsu 0:440d08e0dbbc 210 Set_LED_Array(4,5,0x02);
y_notsu 0:440d08e0dbbc 211 Set_LED_Array(5,5,0x02);
y_notsu 0:440d08e0dbbc 212 Set_LED_Array(1,6,0x02);
y_notsu 0:440d08e0dbbc 213 Set_LED_Array(5,6,0x02);
y_notsu 0:440d08e0dbbc 214 Set_LED_Array(6,6,0x02);
y_notsu 0:440d08e0dbbc 215 Set_LED_Array(2,7,0x02);
y_notsu 0:440d08e0dbbc 216 Set_LED_Array(3,7,0x02);
y_notsu 0:440d08e0dbbc 217 Set_LED_Array(4,7,0x02);
y_notsu 0:440d08e0dbbc 218 Set_LED_Array(7,7,0x02);
y_notsu 0:440d08e0dbbc 219 Set_LED2_Array(1,3,0x02);
y_notsu 0:440d08e0dbbc 220 Set_LED2_Array(2,3,0x02);
y_notsu 0:440d08e0dbbc 221 Set_LED2_Array(3,3,0x02);
y_notsu 0:440d08e0dbbc 222 Set_LED2_Array(4,3,0x02);
y_notsu 0:440d08e0dbbc 223 Set_LED2_Array(5,3,0x02);
y_notsu 0:440d08e0dbbc 224 Set_LED2_Array(6,4,0x02);
y_notsu 0:440d08e0dbbc 225 Set_LED2_Array(6,5,0x02);
y_notsu 0:440d08e0dbbc 226 Set_LED2_Array(6,6,0x02);
y_notsu 0:440d08e0dbbc 227 Set_LED2_Array(3,7,0x02);
y_notsu 0:440d08e0dbbc 228 Set_LED2_Array(4,7,0x02);
y_notsu 0:440d08e0dbbc 229 Set_LED2_Array(5,7,0x02);
y_notsu 0:440d08e0dbbc 230 Set_LED3_Array(5,0,0x02);
y_notsu 0:440d08e0dbbc 231 Set_LED3_Array(4,1,0x02);
y_notsu 0:440d08e0dbbc 232 Set_LED3_Array(3,2,0x02);
y_notsu 0:440d08e0dbbc 233 Set_LED3_Array(2,3,0x02);
y_notsu 0:440d08e0dbbc 234 Set_LED3_Array(2,4,0x02);
y_notsu 0:440d08e0dbbc 235 Set_LED3_Array(3,5,0x02);
y_notsu 0:440d08e0dbbc 236 Set_LED3_Array(4,6,0x02);
y_notsu 0:440d08e0dbbc 237 Set_LED3_Array(5,7,0x02);
y_notsu 0:440d08e0dbbc 238 wait(1.5);
y_notsu 0:440d08e0dbbc 239 myled = 1;
y_notsu 0:440d08e0dbbc 240 myled2=1;
y_notsu 0:440d08e0dbbc 241 Set_LED_Array(5,0,0x03);
y_notsu 0:440d08e0dbbc 242 Set_LED_Array(2,1,0x03);
y_notsu 0:440d08e0dbbc 243 Set_LED_Array(3,1,0x03);
y_notsu 0:440d08e0dbbc 244 Set_LED_Array(4,1,0x03);
y_notsu 0:440d08e0dbbc 245 Set_LED_Array(5,1,0x03);
y_notsu 0:440d08e0dbbc 246 Set_LED_Array(6,1,0x03);
y_notsu 0:440d08e0dbbc 247 Set_LED_Array(7,1,0x03);
y_notsu 0:440d08e0dbbc 248 Set_LED_Array(5,2,0x03);
y_notsu 0:440d08e0dbbc 249 Set_LED_Array(3,3,0x03);
y_notsu 0:440d08e0dbbc 250 Set_LED_Array(4,3,0x03);
y_notsu 0:440d08e0dbbc 251 Set_LED_Array(5,3,0x03);
y_notsu 0:440d08e0dbbc 252 Set_LED_Array(6,3,0x03);
y_notsu 0:440d08e0dbbc 253 Set_LED_Array(7,3,0x03);
y_notsu 0:440d08e0dbbc 254 Set_LED_Array(5,4,0x03);
y_notsu 0:440d08e0dbbc 255 Set_LED_Array(2,5,0x03);
y_notsu 0:440d08e0dbbc 256 Set_LED_Array(3,5,0x03);
y_notsu 0:440d08e0dbbc 257 Set_LED_Array(4,5,0x03);
y_notsu 0:440d08e0dbbc 258 Set_LED_Array(5,5,0x03);
y_notsu 0:440d08e0dbbc 259 Set_LED_Array(1,6,0x03);
y_notsu 0:440d08e0dbbc 260 Set_LED_Array(5,6,0x03);
y_notsu 0:440d08e0dbbc 261 Set_LED_Array(6,6,0x03);
y_notsu 0:440d08e0dbbc 262 Set_LED_Array(2,7,0x03);
y_notsu 0:440d08e0dbbc 263 Set_LED_Array(3,7,0x03);
y_notsu 0:440d08e0dbbc 264 Set_LED_Array(4,7,0x03);
y_notsu 0:440d08e0dbbc 265 Set_LED_Array(7,7,0x03);
y_notsu 0:440d08e0dbbc 266 Set_LED2_Array(1,3,0x03);
y_notsu 0:440d08e0dbbc 267 Set_LED2_Array(2,3,0x03);
y_notsu 0:440d08e0dbbc 268 Set_LED2_Array(3,3,0x03);
y_notsu 0:440d08e0dbbc 269 Set_LED2_Array(4,3,0x03);
y_notsu 0:440d08e0dbbc 270 Set_LED2_Array(5,3,0x03);
y_notsu 0:440d08e0dbbc 271 Set_LED2_Array(6,4,0x03);
y_notsu 0:440d08e0dbbc 272 Set_LED2_Array(6,5,0x03);
y_notsu 0:440d08e0dbbc 273 Set_LED2_Array(6,6,0x03);
y_notsu 0:440d08e0dbbc 274 Set_LED2_Array(3,7,0x03);
y_notsu 0:440d08e0dbbc 275 Set_LED2_Array(4,7,0x03);
y_notsu 0:440d08e0dbbc 276 Set_LED2_Array(5,7,0x03);
y_notsu 0:440d08e0dbbc 277 Set_LED3_Array(5,0,0x03);
y_notsu 0:440d08e0dbbc 278 Set_LED3_Array(4,1,0x03);
y_notsu 0:440d08e0dbbc 279 Set_LED3_Array(3,2,0x03);
y_notsu 0:440d08e0dbbc 280 Set_LED3_Array(2,3,0x03);
y_notsu 0:440d08e0dbbc 281 Set_LED3_Array(2,4,0x03);
y_notsu 0:440d08e0dbbc 282 Set_LED3_Array(3,5,0x03);
y_notsu 0:440d08e0dbbc 283 Set_LED3_Array(4,6,0x03);
y_notsu 0:440d08e0dbbc 284 Set_LED3_Array(5,7,0x03);
y_notsu 0:440d08e0dbbc 285 wait(1.5);
y_notsu 0:440d08e0dbbc 286
y_notsu 0:440d08e0dbbc 287 }
y_notsu 0:440d08e0dbbc 288 }