Aliexpressなどで販売されている64x32のフルカラードットマトリクスLED2枚とNucleo F401REを利用して、 E233系の駅停車時、路線名表示ありのLED側面行先表示を再現するプログラムです。 3秒間隔、3段階切替で、路線名、種別、行先、次停車駅を個別に指定することが可能です。

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Sat Feb 28 05:37:16 2015 +0000
Revision:
32:3bf210e07de7
Parent:
31:d186b04b983e
Child:
33:c934bc793c5a
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
RRacer 0:1f58ecec51d6 1 /*
RRacer 0:1f58ecec51d6 2 The goal of this program is to show the basic connections and workings of Adafruits 32x16 RGB LED matrix board (http://www.adafruit.com/products/420),
RRacer 0:1f58ecec51d6 3 also sold on other places, for instance http://www.ebay.com/itm/PH6-RGB-Full-Color-LED-16-32-Dot-Matrix-Display-Module-/310303408628?pt=LH_DefaultDomain_0&hash=item483f8641f4 (no
RRacer 0:1f58ecec51d6 4 affiliation with either of them).
RRacer 0:1f58ecec51d6 5 This program is not intended to be highly optimized or a guideline in C programming in any way (more of the opposite actually).
RRacer 1:dd0dcd303d6d 6 To have more than 7 colors on this thing, you need to implement software PWM of some sort. I have obviously not done that, but if YOU do, please let me know!
RRacer 1:dd0dcd303d6d 7 Adafruit have a wicked demo program for an arduino - www.youtube.com/watch?v=lY-flFEfsHo
RRacer 0:1f58ecec51d6 8 There are probably lots of ways to make this perform better, perhaps by using Neal Hormans port of the Adafruit_GFX library (http://mbed.org/users/nkhorman/code/Adafruit_GFX/).
RRacer 0:1f58ecec51d6 9 No error checking or out-of-bounds checking is done. Use at your own peril.
RRacer 0:1f58ecec51d6 10 For more detailed information on the driver chip, see http://www.bjtopspace.com/ziliao/CYT62726.pdf
RRacer 0:1f58ecec51d6 11 Although the chips on my board says jx15020, I've been informed that they are equvivalent to the CYT62726, and so far it's a match.
RRacer 0:1f58ecec51d6 12 Feel free to use all or parts of this work.
RRacer 0:1f58ecec51d6 13 If you choose to do so, I would appreciate a small mentioning in the scrolling opening credits ;)
RRacer 0:1f58ecec51d6 14
RRacer 0:1f58ecec51d6 15 Best regards,
RRacer 0:1f58ecec51d6 16 Hugo Harming
RRacer 0:1f58ecec51d6 17 upgraded@hotmail.com
RRacer 0:1f58ecec51d6 18 */
RRacer 0:1f58ecec51d6 19
RRacer 0:1f58ecec51d6 20 #include "mbed.h"
chirashi 13:0c542447e6da 21 #include "SDFileSystem.h"
chirashi 13:0c542447e6da 22
chirashi 23:6fb1181345a7 23 #define bitRead(value, bit) (((value) >> (bit)) & 0x01)
chirashi 23:6fb1181345a7 24
chirashi 23:6fb1181345a7 25 #define bitSet(value, bit) ((value) |= (1UL << (bit)))
chirashi 23:6fb1181345a7 26 #define bitClear(value, bit) ((value) &= ~(1UL << (bit)))
chirashi 23:6fb1181345a7 27 #define bitWrite(value, bit, bitvalue) (bitvalue ? bitSet(value, bit) : bitClear(value, bit))
chirashi 23:6fb1181345a7 28
RRacer 0:1f58ecec51d6 29 #define LOW 0
RRacer 0:1f58ecec51d6 30 #define HIGH 1
RRacer 0:1f58ecec51d6 31
chirashi 6:e6cb4a476422 32 #define R_Debug1 0
chirashi 6:e6cb4a476422 33 #define R_Debug2 0
chirashi 6:e6cb4a476422 34 #define R_Debug3 0
chirashi 6:e6cb4a476422 35 #define R_Debug4 0
chirashi 6:e6cb4a476422 36
chirashi 6:e6cb4a476422 37 #define G_Debug1 0
chirashi 6:e6cb4a476422 38 #define G_Debug2 0
chirashi 6:e6cb4a476422 39 #define G_Debug3 0
chirashi 6:e6cb4a476422 40 #define G_Debug4 0
chirashi 6:e6cb4a476422 41
chirashi 6:e6cb4a476422 42 #define B_Debug1 0
chirashi 6:e6cb4a476422 43 #define B_Debug2 0
chirashi 6:e6cb4a476422 44 #define B_Debug3 0
chirashi 6:e6cb4a476422 45 #define B_Debug4 0
chirashi 6:e6cb4a476422 46
chirashi 29:bc82c25b6b94 47 //表示幅を増やす場合ここ以外も変更が必要
chirashi 11:4be8dcbad9f1 48 #define LED_Width 128
chirashi 10:4d9cf202a845 49 #define LED_Height 16
chirashi 6:e6cb4a476422 50
chirashi 29:bc82c25b6b94 51
chirashi 21:b536f614ba71 52 #define DisplayWait 15
chirashi 21:b536f614ba71 53
chirashi 24:7232abdf7884 54 //最大停車駅数
chirashi 24:7232abdf7884 55 #define MaxStopStation 100
chirashi 24:7232abdf7884 56
chirashi 30:3ac9aa4faa34 57 //将来的な複数機器連動用の機器ID
chirashi 30:3ac9aa4faa34 58 //0:全機器一斉送信用 1:前面LED 2:側面LED(暫定)
chirashi 30:3ac9aa4faa34 59 #define DeviceID 2
chirashi 30:3ac9aa4faa34 60
chirashi 30:3ac9aa4faa34 61
chirashi 27:3dccc05e760b 62 //SDCard
chirashi 27:3dccc05e760b 63 //MOSI - D11(PA7)
chirashi 27:3dccc05e760b 64 //MISO - D12(PA6)
chirashi 27:3dccc05e760b 65 //SCK - D13(PA5)
chirashi 27:3dccc05e760b 66 //CS - D10(PB6)
chirashi 27:3dccc05e760b 67
chirashi 13:0c542447e6da 68 SDFileSystem sd(D11, D12, D13, D10, "sd");
chirashi 27:3dccc05e760b 69
chirashi 30:3ac9aa4faa34 70 //Serial USB
chirashi 13:0c542447e6da 71 Serial pc(USBTX,USBRX );
chirashi 27:3dccc05e760b 72
chirashi 30:3ac9aa4faa34 73 //Bluetooth Serial6
chirashi 30:3ac9aa4faa34 74 //Serial pc(PA_11,PA_12 );
chirashi 30:3ac9aa4faa34 75
chirashi 30:3ac9aa4faa34 76
chirashi 27:3dccc05e760b 77 //LEDModule
chirashi 29:bc82c25b6b94 78 //R1,R2,G1,G2,B1,B2はモジュールによりコネクタのピンアサインが異なります。
chirashi 29:bc82c25b6b94 79 //色が違う場合DigitalOutのピンアサインを変更してください。
chirashi 29:bc82c25b6b94 80
chirashi 27:3dccc05e760b 81 //R1 - D4(PB5)
chirashi 27:3dccc05e760b 82 //R2 - D5(PB4)
chirashi 27:3dccc05e760b 83 //G1 - D6(PB10)
chirashi 27:3dccc05e760b 84 //G2 - D7(PA8)
chirashi 27:3dccc05e760b 85 //B1 - D2(PA10)
chirashi 27:3dccc05e760b 86 //B2 - D3(PB3)
chirashi 30:3ac9aa4faa34 87 //or
chirashi 30:3ac9aa4faa34 88 //R1 - D6(PB5)
chirashi 30:3ac9aa4faa34 89 //R2 - D7(PB4)
chirashi 30:3ac9aa4faa34 90 //G1 - D2(PB10)
chirashi 30:3ac9aa4faa34 91 //G2 - D3(PA8)
chirashi 30:3ac9aa4faa34 92 //B1 - D4(PA10)
chirashi 30:3ac9aa4faa34 93 //B2 - D5(PB3)
chirashi 27:3dccc05e760b 94
chirashi 27:3dccc05e760b 95 //A - D8(PA9)
chirashi 27:3dccc05e760b 96 //B - D9(PC7)
chirashi 27:3dccc05e760b 97 //C - PB13
chirashi 27:3dccc05e760b 98 //D - PC5
chirashi 27:3dccc05e760b 99
chirashi 27:3dccc05e760b 100 //CLK - PB14
chirashi 27:3dccc05e760b 101 //LAT - PB15
chirashi 27:3dccc05e760b 102 //OE - PB1
chirashi 27:3dccc05e760b 103
chirashi 21:b536f614ba71 104 BusOut ABC(D8,D9,PB_13,PC_5); // Row address.
chirashi 13:0c542447e6da 105 DigitalOut CLK(PB_14); // Data clock - rising edge
chirashi 13:0c542447e6da 106 DigitalOut LAT(PB_15); // Data latch - active low (pulse up after data load)
chirashi 13:0c542447e6da 107 DigitalOut OE(PB_1); // Output enable - active low (hold high during data load, bring low after LAT pulse)
chirashi 21:b536f614ba71 108
chirashi 30:3ac9aa4faa34 109 DigitalOut R1(D4); // RED Serial in for upper half
chirashi 30:3ac9aa4faa34 110 DigitalOut R2(D5); // RED Serial in for lower half
chirashi 30:3ac9aa4faa34 111 DigitalOut G1(D6); // GREEN Serial in for upper half
chirashi 30:3ac9aa4faa34 112 DigitalOut G2(D7); // GREEN Serial in for lower half
chirashi 30:3ac9aa4faa34 113 DigitalOut B1(D2); // BLUE Serial in for upper half
chirashi 30:3ac9aa4faa34 114 DigitalOut B2(D3); // BLUE Serial in for lower half
chirashi 21:b536f614ba71 115
chirashi 21:b536f614ba71 116
chirashi 21:b536f614ba71 117
chirashi 12:680db9f1f4eb 118
chirashi 12:680db9f1f4eb 119
chirashi 29:bc82c25b6b94 120 //SumSW(現状未使用)
chirashi 13:0c542447e6da 121 DigitalOut SCK(PB_7);
chirashi 13:0c542447e6da 122 DigitalOut SI(PC_13);
chirashi 13:0c542447e6da 123 DigitalOut RCK(PC_14);
chirashi 13:0c542447e6da 124
chirashi 13:0c542447e6da 125 DigitalIn SumSW1(PA_0);
chirashi 13:0c542447e6da 126 DigitalIn SumSW2(PA_1);
chirashi 13:0c542447e6da 127 DigitalIn SumSW4(PA_4);
chirashi 13:0c542447e6da 128 DigitalIn SumSW8(PB_0);
chirashi 14:0f4d44927b20 129 //BusIn SumSWNum(PA_0,PA_1,PA_4,PB_0);
chirashi 13:0c542447e6da 130
chirashi 29:bc82c25b6b94 131
chirashi 29:bc82c25b6b94 132 //表示切替用タイマ
chirashi 8:9d22c9910917 133 Ticker ChangeTimer;
chirashi 29:bc82c25b6b94 134 //スクロール用タイマ(現状未使用)
chirashi 22:ebab951db9f6 135 Ticker ScrollTimer;
chirashi 13:0c542447e6da 136
chirashi 14:0f4d44927b20 137 //Debug
chirashi 21:b536f614ba71 138 bool Debug = 0;
chirashi 13:0c542447e6da 139
chirashi 13:0c542447e6da 140
chirashi 19:26e0fae24da6 141 //Mode
chirashi 19:26e0fae24da6 142
chirashi 19:26e0fae24da6 143 //3:固定表示 LEDBuffer3固定
chirashi 19:26e0fae24da6 144
chirashi 19:26e0fae24da6 145 //1固定
chirashi 19:26e0fae24da6 146 int WriteMode = 1;
chirashi 19:26e0fae24da6 147
chirashi 19:26e0fae24da6 148
chirashi 19:26e0fae24da6 149
chirashi 19:26e0fae24da6 150 //1:3段階 LEDBuffer-LEDBuffer2-LEDBuffer3
chirashi 19:26e0fae24da6 151 //2:2段階 LEDBuffer-LEDBuffer2
chirashi 19:26e0fae24da6 152 //3:固定 LEDBuffer2
chirashi 19:26e0fae24da6 153 //4:2段階 LEDBuffer2-LEDBuffer3
chirashi 19:26e0fae24da6 154 int DisplayMode = 1;
chirashi 19:26e0fae24da6 155
chirashi 22:ebab951db9f6 156 //スクロール有効/無効(テスト用)
chirashi 28:4cc6aa3acd92 157 bool Scroll = 1;
chirashi 22:ebab951db9f6 158
chirashi 26:99c72fe9366e 159 //起動時スクロール読み込み有効/無効(SDがない場合0にする)
chirashi 29:bc82c25b6b94 160 //(1になっている場合SDカードが刺さっていないと起動に数分かかります)
chirashi 28:4cc6aa3acd92 161 bool ScrollEnable = 1;
chirashi 22:ebab951db9f6 162
chirashi 17:95bcbc53d96b 163 int ChangeCount = 0;
chirashi 32:3bf210e07de7 164 int LineNumber = 1;
chirashi 24:7232abdf7884 165 int KindNumber = 22;
chirashi 24:7232abdf7884 166 int ForNumber = 114;
chirashi 17:95bcbc53d96b 167 int NextStaNumber = 1;
chirashi 32:3bf210e07de7 168
chirashi 32:3bf210e07de7 169 int RoutePatternNumber = 1;
chirashi 32:3bf210e07de7 170 int DeptStaNumber = 3;
chirashi 32:3bf210e07de7 171 int TermStaNumber = 32;
chirashi 32:3bf210e07de7 172
chirashi 17:95bcbc53d96b 173 char SerialBuffer[30];
chirashi 30:3ac9aa4faa34 174 //シリアル処理用バッファ
chirashi 30:3ac9aa4faa34 175 char ABuffer[30];
chirashi 30:3ac9aa4faa34 176 bool busyflag = false;
chirashi 17:95bcbc53d96b 177 int count = 0;
chirashi 13:0c542447e6da 178
chirashi 22:ebab951db9f6 179
chirashi 22:ebab951db9f6 180
chirashi 22:ebab951db9f6 181 int ScrollCount = 0;
chirashi 23:6fb1181345a7 182 int ScrollWriteCount = 80;
chirashi 22:ebab951db9f6 183
chirashi 22:ebab951db9f6 184
chirashi 13:0c542447e6da 185 //SDCardFilePath
chirashi 17:95bcbc53d96b 186 char SDFilePath[80]= "/sd/a.txt";
chirashi 13:0c542447e6da 187
chirashi 29:bc82c25b6b94 188 //unsigned char gm[32][6]; // Buffer with 32x6 bytes. Graphics memory if you like.
RRacer 0:1f58ecec51d6 189 unsigned long CT; // Counter for demo code
RRacer 0:1f58ecec51d6 190
chirashi 29:bc82c25b6b94 191
chirashi 29:bc82c25b6b94 192 //StopStationCode:停車駅コード(最大100駅 それ以上の場合MaxStopStationを増やしてください)
chirashi 29:bc82c25b6b94 193 //停車駅コード終端は0にする
chirashi 29:bc82c25b6b94 194 //StationNameLength:駅名の文字数(最大8文字)
chirashi 29:bc82c25b6b94 195 //停車駅名データ:/sd/E233/StationName/(停車駅コード).bin
chirashi 29:bc82c25b6b94 196 //128x32
chirashi 29:bc82c25b6b94 197
chirashi 24:7232abdf7884 198 //int StopStationCode[MaxStopStation] = {2,3,7,11,14,20,24,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,0};
chirashi 24:7232abdf7884 199 //Keihin-Tohoku Rapid Ofuna
chirashi 24:7232abdf7884 200 //int StopStationCode[MaxStopStation] = {202,203,204,205,206,207,208,209,210,211,212,213,214,218,220,222,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,0};
chirashi 24:7232abdf7884 201 int StopStationCode[MaxStopStation] = {320,319,318,317,316,315,314,313,312,311,310,309,308,307,306,305,304,303,302,301,351,352,353,354,355,356,401,402,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,0};
chirashi 23:6fb1181345a7 202 int StationNameLength[100] = {0,2,2,4,3,3,3,3,3,4,3,2,3,3,2,3,4,2,3,3,2,3,4,5,3,4,2,2,2,2,3,4,2,3,2,3,3,2,2,2,2,3,3,2,2,3,3,7,4,2,3,1,5,3,3,3,8,3};
chirashi 23:6fb1181345a7 203
chirashi 23:6fb1181345a7 204
chirashi 13:0c542447e6da 205
chirashi 13:0c542447e6da 206
chirashi 15:12895e9c6965 207 int8_t LEDBuffer [32][128] = {
chirashi 12:680db9f1f4eb 208 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 209 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 210 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 211 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 212 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 213 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 214 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 215 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 216 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 217 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,15,15,15,15,15,15,7,7,7,7,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 218 {0,0,0,0,15,15,15,15,15,15,15,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 219 {15,15,15,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 220 {0,0,0,0,0,0,0,0,0,0,0,0,0,15,15,15,15,15,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 221 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 222 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0,0,0,0,0,7,7,7,0,0,7,7,7,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0},
chirashi 12:680db9f1f4eb 223 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0,0,0,0,0,7,7,7,0,0,7,7,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,7,7,7,15,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0,0},
chirashi 12:680db9f1f4eb 224 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,7,0,0,0,0,0,0,0,7,7,7,0,0,7,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,7,7,7,15,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 225 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,7,7,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,15,0,0,0,0,0,15,7,7,7,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 226 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,7,7,7,0,0,0,0,0,7,7,7,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,15,0,0,0,15,7,7,7,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 227 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,7,7,7,7,0,0,0,0,7,7,7,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,15,0,15,7,7,7,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 228 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,7,7,7,7,7,0,0,0,7,7,7,0,0,0,0,0,0,7,7,7,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,7,7,15,1,15,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 229 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,7,7,7,7,7,0,0,7,7,7,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 230 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,7,7,7,7,7,0,7,7,7,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 231 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,7,7,7,7,7,7,7,7,0,0,0,0,0,0,7,7,7,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,0,0,0,15,7,1,1,1,7,15,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 232 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0,7,7,7,7,7,7,7,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,7,7,7,15,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 233 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0,0,7,7,7,7,7,7,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,7,7,7,15,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 234 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0,0,0,7,7,7,7,7,0,0,0,0,0,0,7,7,7,15,15,15,15,15,15,15,15,15,15,15,0,0,0,0,15,7,7,7,0,0,0,0,0,7,7,7,15,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 235 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,7,7,7,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,15,7,7,7,0,0,0,0,0,0,0,7,7,7,15,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 236 {14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,7,7,7,14,14,14,14,14,14,14,14,7,7,7,14,14,14,14,14,14,7,7,7,7,7,7,7,7,7,7,7,7,7,7,14,14,15,7,7,7,14,14,14,14,14,14,14,14,14,7,7,7,15,14,14,14,14,14},
chirashi 12:680db9f1f4eb 237 {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,7,7,1,1,1,1,1,1,1,1,1,7,7,1,1,1,1,1,1,7,7,7,7,7,7,7,7,7,7,7,7,7,7,1,1,7,7,7,1,1,1,1,1,1,1,1,1,1,1,7,7,7,1,1,1,1,1},
chirashi 12:680db9f1f4eb 238 {14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14},
chirashi 12:680db9f1f4eb 239 {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
chirashi 12:680db9f1f4eb 240
chirashi 9:ab87b0e361aa 241
chirashi 8:9d22c9910917 242 };
chirashi 6:e6cb4a476422 243
chirashi 15:12895e9c6965 244 int8_t LEDBuffer2[32][128] = {
chirashi 14:0f4d44927b20 245 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 246 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,7,7,7,7,0,0,7,7,7,7,7,7,7,7,7,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 247 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,7,7,7,7,0,7,7,7,7,7,7,7,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,0,7,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 248 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,7,7,7,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 249 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,7,0,0,0,0,0,7,7,7,7,7,7,7,7,7,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,7,7,7,7,7,7,0,0,7,7,0,7,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 250 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,7,7,7,7,0,0,0,7,7,7,7,7,7,7,7,7,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,7,7,7,7,7,7,0,0,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 251 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,7,7,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,7,7,7,7,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 252 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,7,0,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 253 {9,7,7,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,7,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 254 {9,7,7,9,7,7,9,7,9,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,7,7,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 255 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,7,0,0,0,7,7,0,0,0,7,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,7,7,7,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 256 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,7,7,9,9,9,9,7,7,9,9,0,0,0,7,7,7,0,0,7,7,0,0,7,7,7,0,0,0,0,0,0,7,7,0,0,0,7,0,0,0,0,0,7,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,7,7,7,7,7,7,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 257 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,7,7,9,9,9,9,7,7,9,9,0,0,7,7,7,0,0,0,7,7,0,0,0,7,7,7,7,0,0,0,7,7,7,0,7,7,7,7,0,0,0,7,7,7,7,0,0,0,0,0,7,7,7,0,7,7,0,7,7,7,0,0,0,0,0,7,7,7,7,0,7,7,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 258 {9,7,7,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,7,7,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,7,7,7,0,0,7,7,7,7,0,0,0,0,7,7,7,7,0,7,7,7,0,7,7,7,7,0,0,0,0,0,7,7,7,7,0,7,7,7,7,7,0,0,7,7,0,0,7,7,7,7,7,0,0,0,7,0,0,0,7,7,0,0,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 259 {9,7,7,9,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,7,7,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,7,0,0,0,0,7,7,0,0,0,0,0,0,7,7,0,0,0,7,0,0,0,7,0,0,0,0,0,0,0,0,0,7,0,0,7,7,7,7,0,0,0,7,7,0,0,0,7,7,7,7,0,0,0,0,0,0,0,7,7,0,0,0,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 260 {9,9,9,9,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 261 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,7,7,7,7,7,7,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,7,7,0,0,0,0,0},
chirashi 14:0f4d44927b20 262 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,7,7,7,7,7,7,7,7,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,7,7,7,7,7,7,0,0,0,0,0,0,7,7,0,0,0,7,7,0,0,0,7,7,0,0,0,0,0,7,7,7,0,0,0,7,7,7,7,7,7,7,7,0,0},
chirashi 14:0f4d44927b20 263 {9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,7,7,7,7,9,7,7,9,7,7,7,7,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,7,7,7,7,7,7,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,7,7,0,7,0,0,7,7,7,7,7,7,7,7,0,0},
chirashi 14:0f4d44927b20 264 {9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,9,7,7,9,9,9,9,9,9,9,9,9,9,7,7,9,7,7,7,7,7,9,9,7,7,9,9,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,0,0,0,0,7,7,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,7,7,0,7,7,0,0,7,7,0,0,0,0,7,7,0,0},
chirashi 14:0f4d44927b20 265 {9,9,9,9,7,7,9,9,9,9,9,9,7,7,7,9,7,7,7,9,9,9,9,9,9,9,9,9,7,7,9,7,7,7,9,9,9,9,7,7,9,9,9,9,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,0,0,7,7,7,7,7,7,7,7,0,0},
chirashi 14:0f4d44927b20 266 {9,9,9,9,7,7,9,9,9,9,9,7,7,7,9,9,9,7,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,7,7,7,7,7,7,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,7,7,7,7,0,0,0,7,7,0,0,0,0,7,7,0,0},
chirashi 14:0f4d44927b20 267 {9,9,9,9,7,7,9,9,9,7,7,7,7,9,9,9,9,9,7,7,7,9,9,9,9,9,7,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,7,7,7,0,0,7,7,0,0,0,0,7,7,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,7,7,0,7,7,0,7,7,7,7,7,7,7,7,0,0},
chirashi 14:0f4d44927b20 268 {9,9,9,9,7,7,9,7,7,7,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,7,7,7,7,0,7,7,7,7,7,7,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,0,7,7,7,7,7,7,7,7,0,0},
chirashi 14:0f4d44927b20 269 {9,9,9,9,7,7,9,7,7,7,9,9,9,9,9,9,9,9,9,9,7,7,7,9,9,9,7,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,7,7,0,0,7,7,0,7,7,7,7,7,7,7,7,7,7,0,0,0,7,7,7,7,7,7,7,7,0,0,0,7,7,0,0,0,7,0},
chirashi 14:0f4d44927b20 270 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,7,7,7,0,7,7,7,0,7,7,0,0,0,7,7,0,0,0,7,7,0,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,7,7,0,7,7,7,7,0,7,7,7,0,0,7,0},
chirashi 14:0f4d44927b20 271 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,7,7,0,0,7,7,0,7,7,7,0,7,7,0,0,0,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,7,7,7,0,0,0,7,0,7,7,7,0,7,0,0},
chirashi 14:0f4d44927b20 272 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,7,7,7,7,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,7,7,0,7,7,0,7,0,0,7,0,7,7,7,7,0,0,0},
chirashi 14:0f4d44927b20 273 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,7,7,0,7,7,0,7,0,7,7,0,7,7,0,7,0,0,0},
chirashi 14:0f4d44927b20 274 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,7,7,0,7,7,7,0,0,0,0,7,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,7,7,0,7,7,0,0,0,7,0,0,7,7,0,7,7,0,0},
chirashi 14:0f4d44927b20 275 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,7,7,0,0,0,7,7,7,7,0,7,7,7,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,7,7,0,0,7,7,0},
chirashi 14:0f4d44927b20 276 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,0,0,0,0,0,7,7,0,0,0,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0}
chirashi 8:9d22c9910917 277
chirashi 8:9d22c9910917 278 };
chirashi 8:9d22c9910917 279
chirashi 15:12895e9c6965 280 int8_t LEDBuffer3[32][128] = {
chirashi 12:680db9f1f4eb 281 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 282 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 283 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 284 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 285 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,0,0,0,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 286 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,0,0,0,7,7,0,7,7,7,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 287 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 288 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 289 {9,7,7,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,7,0,0,0,7,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 290 {9,7,7,9,7,7,9,7,9,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 291 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,7,7,7,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 292 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,7,7,9,9,9,9,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,0,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 293 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,7,7,9,9,9,9,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 294 {9,7,7,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,7,7,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 295 {9,7,7,9,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,7,7,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 296 {9,9,9,9,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 297 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,7,7,7,7,7,7,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 298 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,7,7,7,7,7,7,7,7,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 299 {9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,7,7,7,7,9,7,7,9,7,7,7,7,9,9,9,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 300 {9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,9,7,7,9,9,9,9,9,9,9,9,9,9,7,7,9,7,7,7,7,7,9,9,7,7,9,9,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 301 {9,9,9,9,7,7,9,9,9,9,9,9,7,7,7,9,7,7,7,9,9,9,9,9,9,9,9,9,7,7,9,7,7,7,9,9,9,9,7,7,9,9,9,9,7,7,7,9,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,7,7,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 302 {9,9,9,9,7,7,9,9,9,9,9,7,7,7,9,9,9,7,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,7,7,7,7,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 303 {9,9,9,9,7,7,9,9,9,7,7,7,7,9,9,9,9,9,7,7,7,9,9,9,9,9,7,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,7,7,7,0,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 304 {9,9,9,9,7,7,9,7,7,7,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 305 {9,9,9,9,7,7,9,7,7,7,9,9,9,9,9,9,9,9,9,9,7,7,7,9,9,9,7,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 306 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 307 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,7,0,7,7,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 308 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,7,7,7,0,0,7,0,0,0,7,0,7,7,0,0,7,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 309 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,7,0,0,0,7,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 310 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,7,7,0,7,0,0,0,7,0,7,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 14:0f4d44927b20 311 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,7,0,0,0,0,7,7,0,7,0,7,0,0,0,7,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 12:680db9f1f4eb 312 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
chirashi 8:9d22c9910917 313
chirashi 8:9d22c9910917 314 };
chirashi 21:b536f614ba71 315
chirashi 21:b536f614ba71 316 int8_t LEDMainBuffer[32][128] = {
chirashi 21:b536f614ba71 317 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 318 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 319 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 320 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 321 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,0,0,0,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 322 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,0,0,0,7,7,0,7,7,7,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 323 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 324 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,0,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 325 {9,7,7,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,9,9,7,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,7,0,0,0,7,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 326 {9,7,7,9,7,7,9,7,9,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 327 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,7,7,7,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0},
chirashi 21:b536f614ba71 328 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,7,7,9,9,9,9,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,0,7,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 329 {9,7,7,9,7,7,9,7,7,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,7,7,9,9,9,9,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 330 {9,7,7,9,7,7,9,9,9,9,9,9,9,9,7,7,9,9,9,7,7,9,9,9,9,7,7,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 331 {9,7,7,9,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,7,7,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 332 {9,9,9,9,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 333 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,7,7,7,7,7,7,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 334 {9,9,9,9,7,7,9,9,9,9,9,9,9,9,7,7,7,9,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,9,9,7,7,7,7,7,7,7,7,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 335 {9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,7,7,9,9,9,7,7,7,7,9,7,7,9,7,7,7,7,9,9,9,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,7,7,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 336 {9,9,9,9,7,7,9,9,9,9,9,9,9,7,7,9,7,7,9,9,9,9,9,9,9,9,9,9,7,7,9,7,7,7,7,7,9,9,7,7,9,9,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,7,7,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 337 {9,9,9,9,7,7,9,9,9,9,9,9,7,7,7,9,7,7,7,9,9,9,9,9,9,9,9,9,7,7,9,7,7,7,9,9,9,9,7,7,9,9,9,9,7,7,7,9,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,7,7,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 338 {9,9,9,9,7,7,9,9,9,9,9,7,7,7,9,9,9,7,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,9,9,9,9,9,7,7,9,9,9,9,9,9,9,9,0,0,0,0,0,0,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,7,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,7,7,7,7,0,7,7,7,7,7,7,7,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 339 {9,9,9,9,7,7,9,9,9,7,7,7,7,9,9,9,9,9,7,7,7,9,9,9,9,9,7,7,7,7,7,7,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,7,7,7,0,0,7,7,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 340 {9,9,9,9,7,7,9,7,7,7,7,7,9,9,9,9,9,9,9,7,7,7,7,9,9,7,7,7,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 341 {9,9,9,9,7,7,9,7,7,7,9,9,9,9,9,9,9,9,9,9,7,7,7,9,9,9,7,9,9,9,9,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 342 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 343 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,7,0,7,7,0,0,0,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 344 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,7,7,7,0,0,7,0,0,0,7,0,7,7,0,0,7,0,0,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 345 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,7,0,0,0,7,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 346 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,0,0,7,0,0,0,7,0,0,7,7,0,7,0,0,0,7,0,7,0,0,0,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 347 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,7,7,0,0,0,0,7,0,0,0,0,7,7,0,7,0,7,0,0,0,7,0,0,7,7,7,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
chirashi 21:b536f614ba71 348 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
chirashi 21:b536f614ba71 349
chirashi 21:b536f614ba71 350 };
chirashi 21:b536f614ba71 351
chirashi 22:ebab951db9f6 352 int8_t ScrollBuffer[16][2048] = {
chirashi 22:ebab951db9f6 353
chirashi 22:ebab951db9f6 354 };
chirashi 22:ebab951db9f6 355
chirashi 21:b536f614ba71 356
chirashi 19:26e0fae24da6 357 //01 Red
chirashi 19:26e0fae24da6 358 //02 Green
chirashi 19:26e0fae24da6 359 //03 Blue
chirashi 19:26e0fae24da6 360 //04 Yellow(R,G)
chirashi 19:26e0fae24da6 361 //05(G,B)
chirashi 19:26e0fae24da6 362 //06 purple(R,B)
chirashi 19:26e0fae24da6 363 //08 Blue(Keihin-tohoku Line)
chirashi 9:ab87b0e361aa 364 //10 Yellow(Nambu Local)
chirashi 9:ab87b0e361aa 365 //11 Green (Yokohama Line)
chirashi 12:680db9f1f4eb 366 //12 Orange(Rapid Acty,Urbun)
chirashi 16:d02248f44c4b 367
chirashi 19:26e0fae24da6 368 //13 Green(Saikyo Line)
chirashi 19:26e0fae24da6 369
chirashi 16:d02248f44c4b 370 //16 Green(Utsunomiya Line)
chirashi 19:26e0fae24da6 371 //17 Green(Joban Local Local)
chirashi 24:7232abdf7884 372 //18 Keikyu Logo(Gray
chirashi 28:4cc6aa3acd92 373
chirashi 28:4cc6aa3acd92 374 bool R1Data[8][32]={
chirashi 28:4cc6aa3acd92 375 {0,1,0,0,1,0,1,1,0,1,1,1,1,0,1,1,0,0,1},
chirashi 28:4cc6aa3acd92 376 {0,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,1},
chirashi 28:4cc6aa3acd92 377 {0,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0},
chirashi 28:4cc6aa3acd92 378 {0,1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,0,0,0},
chirashi 28:4cc6aa3acd92 379
chirashi 28:4cc6aa3acd92 380 {0,1,0,0,1,0,1,1,0,1,1,1,1,0,1,1,0,0,1},
chirashi 28:4cc6aa3acd92 381 {0,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,1},
chirashi 28:4cc6aa3acd92 382 {0,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0},
chirashi 28:4cc6aa3acd92 383 {0,1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,0,0,0}
chirashi 28:4cc6aa3acd92 384 };
chirashi 4:245f17936b1a 385
chirashi 28:4cc6aa3acd92 386 bool G1Data[8][32]={
chirashi 28:4cc6aa3acd92 387 {0,0,1,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1},
chirashi 28:4cc6aa3acd92 388 {0,0,1,0,1,1,0,1,1,0,1,1,0,0,0,0,1,1,1},
chirashi 28:4cc6aa3acd92 389 {0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0},
chirashi 28:4cc6aa3acd92 390 {0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0},
chirashi 28:4cc6aa3acd92 391
chirashi 28:4cc6aa3acd92 392 {0,0,1,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1},
chirashi 28:4cc6aa3acd92 393 {0,0,1,0,1,1,0,1,1,0,1,1,0,0,0,0,1,1,1},
chirashi 28:4cc6aa3acd92 394 {0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0},
chirashi 28:4cc6aa3acd92 395 {0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0}
chirashi 28:4cc6aa3acd92 396 };
chirashi 7:79dfe71beb88 397
chirashi 28:4cc6aa3acd92 398 bool B1Data[8][32]={
chirashi 28:4cc6aa3acd92 399 {0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1},
chirashi 28:4cc6aa3acd92 400 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1},
chirashi 28:4cc6aa3acd92 401 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
chirashi 28:4cc6aa3acd92 402 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
chirashi 7:79dfe71beb88 403
chirashi 28:4cc6aa3acd92 404 {0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1},
chirashi 28:4cc6aa3acd92 405 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1},
chirashi 28:4cc6aa3acd92 406 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
chirashi 28:4cc6aa3acd92 407 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0}
chirashi 28:4cc6aa3acd92 408 };
chirashi 7:79dfe71beb88 409
chirashi 7:79dfe71beb88 410
RRacer 0:1f58ecec51d6 411
RRacer 0:1f58ecec51d6 412 void Init()
RRacer 0:1f58ecec51d6 413 {
chirashi 30:3ac9aa4faa34 414 //pc.baud(9600);
RRacer 0:1f58ecec51d6 415 // Set up things to a known state
RRacer 0:1f58ecec51d6 416 CLK = LOW;
RRacer 0:1f58ecec51d6 417 LAT = LOW;
RRacer 0:1f58ecec51d6 418 OE = HIGH; //display off
RRacer 0:1f58ecec51d6 419 ABC = 0;
RRacer 0:1f58ecec51d6 420 CT=0;
chirashi 7:79dfe71beb88 421
RRacer 0:1f58ecec51d6 422 }
RRacer 0:1f58ecec51d6 423
chirashi 29:bc82c25b6b94 424 void WriteRow(unsigned char Row, int8_t Buffer[32][128], int8_t index2)
RRacer 0:1f58ecec51d6 425 {
chirashi 28:4cc6aa3acd92 426 ABC = 15-Row;
chirashi 28:4cc6aa3acd92 427 for(int col=0; col<LED_Width; col++) {
chirashi 29:bc82c25b6b94 428 R1 = R1Data[index2][(Buffer [(15-Row)][col])];
chirashi 29:bc82c25b6b94 429 G1 = G1Data[index2][(Buffer [(15-Row)][col])];
chirashi 29:bc82c25b6b94 430 B1 = B1Data[index2][(Buffer [(15-Row)][col])];
chirashi 29:bc82c25b6b94 431 R2 = R1Data[index2][(Buffer [(31-Row)][col])];
chirashi 29:bc82c25b6b94 432 G2 = G1Data[index2][(Buffer [(31-Row)][col])];
chirashi 29:bc82c25b6b94 433 B2 = B1Data[index2][(Buffer [(31-Row)][col])];
chirashi 28:4cc6aa3acd92 434 CLK = HIGH;
chirashi 28:4cc6aa3acd92 435 CLK = LOW;
chirashi 4:245f17936b1a 436 }
chirashi 28:4cc6aa3acd92 437 LAT = HIGH;
chirashi 4:245f17936b1a 438 LAT = LOW;
chirashi 4:245f17936b1a 439 }
chirashi 4:245f17936b1a 440
chirashi 3:6dbbc0130e96 441 void WrRowOFF(unsigned char Row)
chirashi 3:6dbbc0130e96 442 {
chirashi 3:6dbbc0130e96 443 // Write specified row (and row+8) to display. Valid input: 0 to 7.
chirashi 10:4d9cf202a845 444 ABC = 15-Row; // Set row address
chirashi 6:e6cb4a476422 445 for(int col=0; col<LED_Width; col++) { // To daisychain more displays, I guess you would have to increase this counter to n*32 columns. Might mirror though.
chirashi 3:6dbbc0130e96 446 R1 = 0; // Red bit, upper half
chirashi 3:6dbbc0130e96 447 G1 = 0; // Green bit, upper half
chirashi 3:6dbbc0130e96 448 B1 = 0; // Blue bit, upper half
chirashi 3:6dbbc0130e96 449 R2 = 0; // Red bit, lower half
chirashi 3:6dbbc0130e96 450 G2 = 0; // Green bit, lower half
chirashi 3:6dbbc0130e96 451 B2 = 0; // Blue bit, lower half
chirashi 3:6dbbc0130e96 452 CLK = HIGH; // tick (clock bit in)
chirashi 3:6dbbc0130e96 453 CLK = LOW; // tock
chirashi 3:6dbbc0130e96 454 }
chirashi 3:6dbbc0130e96 455 LAT = HIGH; // Latch entire row
chirashi 3:6dbbc0130e96 456 LAT = LOW;
chirashi 3:6dbbc0130e96 457 }
chirashi 3:6dbbc0130e96 458
chirashi 29:bc82c25b6b94 459 //void Pset(unsigned char x,unsigned char y, unsigned char c)
chirashi 29:bc82c25b6b94 460 //{
RRacer 0:1f58ecec51d6 461 // Set pixel (x,y) to color c
RRacer 0:1f58ecec51d6 462 // Manipulates graphics memory, so you won't see any change til you Paint() it.
chirashi 29:bc82c25b6b94 463 // unsigned char ud,l,r0,g0,b0;
chirashi 29:bc82c25b6b94 464 // ud=(y & 8)>>3; // 0 = upper half, 1 = lower half
chirashi 29:bc82c25b6b94 465 // l=y & 7; // Extract row in upper/lower half
chirashi 29:bc82c25b6b94 466 // r0=(c & 4) >>2; // Extract red bit from color
chirashi 29:bc82c25b6b94 467 // g0=(c & 2) >>1; // Extract green bit from color
chirashi 29:bc82c25b6b94 468 // b0=(c & 1); // Extract blue bit from color
RRacer 0:1f58ecec51d6 469 // *******Removes current bit ******* *Adds bit**
chirashi 29:bc82c25b6b94 470 // gm[x][0+3*ud]=(gm[x][0+3*ud] & (255-(1<<(7-l))))+(r0<<(7-l)); // Red byte
chirashi 29:bc82c25b6b94 471 // gm[x][1+3*ud]=(gm[x][1+3*ud] & (255-(1<<(7-l))))+(g0<<(7-l)); // Green byte
chirashi 29:bc82c25b6b94 472 // gm[x][2+3*ud]=(gm[x][2+3*ud] & (255-(1<<(7-l))))+(b0<<(7-l)); // Blue byte
chirashi 29:bc82c25b6b94 473 //}
RRacer 0:1f58ecec51d6 474
chirashi 15:12895e9c6965 475 void Paint(int8_t Buffer2[32][128])
RRacer 0:1f58ecec51d6 476 {
chirashi 28:4cc6aa3acd92 477 for(int index = 0; index < 4; index++){
chirashi 28:4cc6aa3acd92 478 for(int Row=0; Row<LED_Height; Row++) {
chirashi 28:4cc6aa3acd92 479 OE = HIGH; // Disable output
chirashi 28:4cc6aa3acd92 480 WriteRow(Row,Buffer2,index);
chirashi 29:bc82c25b6b94 481 //wait_us(5);
chirashi 28:4cc6aa3acd92 482 OE = LOW; // Enable output
chirashi 28:4cc6aa3acd92 483 wait_us(DisplayWait); // Wasting some time. Use for whatever else. Probably better with a ticker for the display refresh.
chirashi 29:bc82c25b6b94 484 OE = HIGH; // Disable output
chirashi 28:4cc6aa3acd92 485 }
chirashi 5:532937f20397 486 }
chirashi 4:245f17936b1a 487 }
chirashi 4:245f17936b1a 488
RRacer 0:1f58ecec51d6 489
chirashi 3:6dbbc0130e96 490 void PaintOFF()
chirashi 3:6dbbc0130e96 491 {
chirashi 3:6dbbc0130e96 492 // Write graphics memory to display
chirashi 3:6dbbc0130e96 493 for(int Row=0; Row<8; Row++) {
chirashi 3:6dbbc0130e96 494 OE = HIGH; // Disable output
chirashi 3:6dbbc0130e96 495 WrRowOFF(Row);
chirashi 3:6dbbc0130e96 496 OE = LOW; // Enable output
chirashi 4:245f17936b1a 497 wait_us(50); // Wasting some time. Use for whatever else. Probably better with a ticker for the display refresh.
chirashi 3:6dbbc0130e96 498 }
chirashi 3:6dbbc0130e96 499 }
chirashi 3:6dbbc0130e96 500
chirashi 22:ebab951db9f6 501 void CopyBuffer(int8_t ReadBuffer[32][128],int8_t WriteBuffer[32][128]){
chirashi 22:ebab951db9f6 502 for(int y = 0; y < LED_Height * 2; y++){
chirashi 22:ebab951db9f6 503 if(Scroll != 0 && y > 15 ){
chirashi 22:ebab951db9f6 504 for(int x = 0; x < LED_Width - 80; x++){
chirashi 22:ebab951db9f6 505 WriteBuffer[y][x] = ReadBuffer[y][x];
chirashi 22:ebab951db9f6 506 }
chirashi 22:ebab951db9f6 507 }else{
chirashi 22:ebab951db9f6 508 for(int x = 0; x < LED_Width; x++){
chirashi 22:ebab951db9f6 509 WriteBuffer[y][x] = ReadBuffer[y][x];
chirashi 22:ebab951db9f6 510 }
chirashi 22:ebab951db9f6 511 }
chirashi 22:ebab951db9f6 512 }
chirashi 22:ebab951db9f6 513 }
chirashi 22:ebab951db9f6 514
chirashi 23:6fb1181345a7 515 void CopyScrollBuffer(int8_t ReadBuffer[16][2048],int8_t WriteBuffer[32][128],int Startx){
chirashi 23:6fb1181345a7 516 for(int y = 0; y < 16; y++){
chirashi 29:bc82c25b6b94 517 int xCount = 0;
chirashi 23:6fb1181345a7 518 for(int x = 0; x < 80; x++){
chirashi 23:6fb1181345a7 519 if(bitRead(ScrollBuffer[y][(x + Startx) / 8 ], (x + Startx)% 8) != 0){
chirashi 23:6fb1181345a7 520 LEDMainBuffer[y + 16][x + 48] = 4;
chirashi 23:6fb1181345a7 521 }else{
chirashi 23:6fb1181345a7 522 LEDMainBuffer[y + 16][x + 48] = 0;
chirashi 29:bc82c25b6b94 523 }
chirashi 23:6fb1181345a7 524 xCount = xCount + 1;
chirashi 23:6fb1181345a7 525 }
chirashi 23:6fb1181345a7 526 }
chirashi 23:6fb1181345a7 527 }
chirashi 22:ebab951db9f6 528
chirashi 23:6fb1181345a7 529 //1文字256byte
chirashi 23:6fb1181345a7 530 void CopyScrollBuffer2(int8_t ReadBuffer[16][2048],int8_t WriteBuffer[32][128],int Startx){
chirashi 22:ebab951db9f6 531 for(int y = 0; y < 16; y++){
chirashi 22:ebab951db9f6 532 for(int x = 0; x < 80; x++){
chirashi 22:ebab951db9f6 533 LEDMainBuffer[y + 16][x + 48] = ScrollBuffer[y][x + Startx];
chirashi 22:ebab951db9f6 534 }
chirashi 22:ebab951db9f6 535 }
chirashi 22:ebab951db9f6 536 }
chirashi 22:ebab951db9f6 537
chirashi 22:ebab951db9f6 538
chirashi 22:ebab951db9f6 539
chirashi 8:9d22c9910917 540 void TimerTick(){
chirashi 24:7232abdf7884 541 //OE = HIGH;
chirashi 19:26e0fae24da6 542 //DisplayMode = 1 3段階表示ならば
chirashi 19:26e0fae24da6 543 if(DisplayMode == 1){
chirashi 19:26e0fae24da6 544 if (ChangeCount == 0){
chirashi 22:ebab951db9f6 545 CopyBuffer(LEDBuffer,LEDMainBuffer);
chirashi 19:26e0fae24da6 546 ChangeCount = ChangeCount + 1;
chirashi 19:26e0fae24da6 547 }else if(ChangeCount == 1 ){
chirashi 22:ebab951db9f6 548 CopyBuffer(LEDBuffer2,LEDMainBuffer);
chirashi 19:26e0fae24da6 549 ChangeCount = ChangeCount + 1;
chirashi 19:26e0fae24da6 550 //ChangeCount = 0;
chirashi 22:ebab951db9f6 551 }else if(ChangeCount == 2){
chirashi 22:ebab951db9f6 552 CopyBuffer(LEDBuffer3,LEDMainBuffer);
chirashi 19:26e0fae24da6 553 ChangeCount = 0;
chirashi 19:26e0fae24da6 554 }else{
chirashi 19:26e0fae24da6 555 ChangeCount = 0;
chirashi 19:26e0fae24da6 556 }
chirashi 19:26e0fae24da6 557 }
chirashi 19:26e0fae24da6 558 //DisplayMode = 2 2段階表示ならば
chirashi 19:26e0fae24da6 559 //次駅表示なし2段階表示に使用
chirashi 24:7232abdf7884 560
chirashi 24:7232abdf7884 561 if (DisplayMode == 2){
chirashi 19:26e0fae24da6 562
chirashi 19:26e0fae24da6 563 if(ChangeCount == 0 ){
chirashi 22:ebab951db9f6 564 CopyBuffer(LEDBuffer,LEDMainBuffer);
chirashi 19:26e0fae24da6 565 ChangeCount = ChangeCount + 1;
chirashi 19:26e0fae24da6 566 //ChangeCount = 0;
chirashi 22:ebab951db9f6 567 }else if(ChangeCount == 1){
chirashi 22:ebab951db9f6 568 CopyBuffer(LEDBuffer2,LEDMainBuffer);
chirashi 19:26e0fae24da6 569 ChangeCount = 0;
chirashi 19:26e0fae24da6 570 }else{
chirashi 19:26e0fae24da6 571 ChangeCount = 0;
chirashi 19:26e0fae24da6 572 }
chirashi 19:26e0fae24da6 573 }
chirashi 19:26e0fae24da6 574 //DisplayMode = 3 ならば LEDBuffer2を固定表示
chirashi 24:7232abdf7884 575 if (DisplayMode == 3){
chirashi 22:ebab951db9f6 576 CopyBuffer(LEDBuffer2,LEDMainBuffer);
chirashi 19:26e0fae24da6 577 ChangeCount = 1;
chirashi 19:26e0fae24da6 578 }
chirashi 19:26e0fae24da6 579
chirashi 19:26e0fae24da6 580 //2段階表示 次駅表示あり、路線名なしパターンに使用
chirashi 24:7232abdf7884 581 if(DisplayMode == 4){
chirashi 19:26e0fae24da6 582 if(ChangeCount == 1 ){
chirashi 22:ebab951db9f6 583 CopyBuffer(LEDBuffer2,LEDMainBuffer);
chirashi 19:26e0fae24da6 584 ChangeCount = ChangeCount + 1;
chirashi 19:26e0fae24da6 585 }else{
chirashi 22:ebab951db9f6 586 CopyBuffer(LEDBuffer3,LEDMainBuffer);
chirashi 19:26e0fae24da6 587 ChangeCount = 1;
chirashi 19:26e0fae24da6 588 }
chirashi 19:26e0fae24da6 589 }
chirashi 24:7232abdf7884 590
chirashi 24:7232abdf7884 591 //OE = LOW;
chirashi 30:3ac9aa4faa34 592 //クロック確認
chirashi 30:3ac9aa4faa34 593 //pc.printf("CPU SystemCoreClock is %.2f MHz\r\n", (float)SystemCoreClock/1000/1000);
chirashi 13:0c542447e6da 594 }
chirashi 13:0c542447e6da 595
chirashi 22:ebab951db9f6 596 void ScrollTimerTick(){
chirashi 23:6fb1181345a7 597 if(ScrollCount < ScrollWriteCount + 80){
chirashi 22:ebab951db9f6 598 CopyScrollBuffer(ScrollBuffer,LEDMainBuffer,ScrollCount);
chirashi 22:ebab951db9f6 599 ScrollCount = ScrollCount + 1;
chirashi 22:ebab951db9f6 600 }else{
chirashi 22:ebab951db9f6 601 ScrollCount = 0;
chirashi 22:ebab951db9f6 602 }
chirashi 22:ebab951db9f6 603 }
chirashi 22:ebab951db9f6 604
chirashi 22:ebab951db9f6 605
chirashi 22:ebab951db9f6 606
chirashi 14:0f4d44927b20 607 //書込み対象バッファ,書込み開始位置x,書込み開始位置y,読み出し幅x,読み出し高さy
chirashi 15:12895e9c6965 608 void SDBufferWrite(int8_t TargetBuffer[32][128], int Startx, int Starty, int Readx, int Ready){
chirashi 14:0f4d44927b20 609 FILE *fp = fopen(SDFilePath, "r");
chirashi 14:0f4d44927b20 610 if(fp == NULL) {
chirashi 14:0f4d44927b20 611 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 14:0f4d44927b20 612 //error("Could not open file for write\r\n");
chirashi 14:0f4d44927b20 613 }else{
chirashi 14:0f4d44927b20 614 //fprintf(fp, "Hello fun SD Card World!");
chirashi 14:0f4d44927b20 615 pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 14:0f4d44927b20 616
chirashi 14:0f4d44927b20 617 //SDDataReadtest
chirashi 16:d02248f44c4b 618 int8_t Data;
chirashi 30:3ac9aa4faa34 619 //先頭2バイトはヘッダ
chirashi 30:3ac9aa4faa34 620 fseek(fp, 2, SEEK_SET);
chirashi 30:3ac9aa4faa34 621
chirashi 14:0f4d44927b20 622 for(int y = Starty; y < Starty + Ready; y++){
chirashi 14:0f4d44927b20 623 for(int x = Startx; x < Startx + Readx; x++){
chirashi 14:0f4d44927b20 624 Data = getc(fp);
chirashi 14:0f4d44927b20 625 TargetBuffer[y][x] = Data;
chirashi 14:0f4d44927b20 626 }
chirashi 14:0f4d44927b20 627 }
chirashi 14:0f4d44927b20 628 fclose(fp);
chirashi 14:0f4d44927b20 629 }
chirashi 14:0f4d44927b20 630 }
chirashi 13:0c542447e6da 631
chirashi 23:6fb1181345a7 632 //スクロールバッファへの書込み用 読み出し高さは16固定
chirashi 23:6fb1181345a7 633 //書込み対象バッファ,書込み開始位置x,書込み開始位置y,読み出し幅x,読み出し高さy
chirashi 23:6fb1181345a7 634 void SDScrollBufferWrite(int8_t TargetBuffer[16][2048], int Startx, int Starty, int Readx, int Ready){
chirashi 24:7232abdf7884 635 //pc.printf("SDScrollBufferWrite\r\n");
chirashi 23:6fb1181345a7 636 FILE *fp = fopen(SDFilePath, "r");
chirashi 23:6fb1181345a7 637 if(fp == NULL) {
chirashi 23:6fb1181345a7 638 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 23:6fb1181345a7 639 //error("Could not open file for write\r\n");
chirashi 23:6fb1181345a7 640 }else{
chirashi 24:7232abdf7884 641 //pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 23:6fb1181345a7 642
chirashi 23:6fb1181345a7 643 //SDDataReadtest
chirashi 23:6fb1181345a7 644 int8_t Data;
chirashi 30:3ac9aa4faa34 645 //先頭2バイトはヘッダ
chirashi 30:3ac9aa4faa34 646 fseek(fp, 2, SEEK_SET);
chirashi 23:6fb1181345a7 647 for(int y = Starty; y < Starty + Ready; y++){
chirashi 23:6fb1181345a7 648 for(int x = Startx; x < Startx + Readx; x++){
chirashi 23:6fb1181345a7 649 Data = getc(fp);
chirashi 23:6fb1181345a7 650
chirashi 23:6fb1181345a7 651
chirashi 23:6fb1181345a7 652 //TargetBuffer[y][x] = Data;
chirashi 23:6fb1181345a7 653
chirashi 23:6fb1181345a7 654 if(Data != 0){
chirashi 23:6fb1181345a7 655 bitSet(TargetBuffer[y][x / 8],x % 8);
chirashi 23:6fb1181345a7 656 }else{
chirashi 23:6fb1181345a7 657 bitClear(TargetBuffer[y][x / 8],x % 8);
chirashi 23:6fb1181345a7 658 }
chirashi 23:6fb1181345a7 659 }
chirashi 23:6fb1181345a7 660 }
chirashi 23:6fb1181345a7 661 fclose(fp);
chirashi 23:6fb1181345a7 662 }
chirashi 23:6fb1181345a7 663 }
chirashi 23:6fb1181345a7 664
chirashi 18:b8563e3319fd 665 //路線名表示の使用領域チェック
chirashi 18:b8563e3319fd 666 //路線名表示時に次停車駅を表示するかどうかの判断に使用
chirashi 18:b8563e3319fd 667 //路線名が下半分も使用しているなら次停車駅は表示しない
chirashi 18:b8563e3319fd 668 bool BufferBlankCheck(){
chirashi 18:b8563e3319fd 669 bool NotBlankflag = 0;
chirashi 18:b8563e3319fd 670 for(int y = 16; y < 32; y++){
chirashi 18:b8563e3319fd 671 for(int x = 48; x < 128; x++){
chirashi 18:b8563e3319fd 672 if(LEDBuffer[y][x] != 0){
chirashi 18:b8563e3319fd 673 NotBlankflag = 1;
chirashi 18:b8563e3319fd 674 }
chirashi 18:b8563e3319fd 675 if(NotBlankflag == 1){
chirashi 18:b8563e3319fd 676 break;
chirashi 18:b8563e3319fd 677 }
chirashi 18:b8563e3319fd 678 }
chirashi 18:b8563e3319fd 679 if(NotBlankflag == 1){
chirashi 18:b8563e3319fd 680 break;
chirashi 18:b8563e3319fd 681 }
chirashi 18:b8563e3319fd 682 }
chirashi 18:b8563e3319fd 683 if(NotBlankflag == 0){
chirashi 18:b8563e3319fd 684 pc.printf("Blank\r\n");
chirashi 18:b8563e3319fd 685 return 0;
chirashi 18:b8563e3319fd 686 }else{
chirashi 18:b8563e3319fd 687 pc.printf("Not Blank\r\n");
chirashi 18:b8563e3319fd 688 return 1;
chirashi 18:b8563e3319fd 689 }
chirashi 18:b8563e3319fd 690 }
chirashi 18:b8563e3319fd 691
chirashi 32:3bf210e07de7 692 void ScrollRead2(){
chirashi 32:3bf210e07de7 693 //スクロールカウンタを0に戻す
chirashi 32:3bf210e07de7 694 ScrollCount = 0;
chirashi 32:3bf210e07de7 695 //スクロールバッファ初期化
chirashi 32:3bf210e07de7 696 for(int i = 0; i < 2048; i++){
chirashi 32:3bf210e07de7 697 for(int j = 0; j < 16; j++){
chirashi 32:3bf210e07de7 698 ScrollBuffer[j][i] = 0;
chirashi 32:3bf210e07de7 699 }
chirashi 32:3bf210e07de7 700 }
chirashi 32:3bf210e07de7 701
chirashi 32:3bf210e07de7 702
chirashi 32:3bf210e07de7 703 //test
chirashi 32:3bf210e07de7 704 //Initialize StopStationCode
chirashi 32:3bf210e07de7 705 for (int x = 0; x < MaxStopStation; x++){
chirashi 32:3bf210e07de7 706 StopStationCode[x]= 0;
chirashi 32:3bf210e07de7 707 }
chirashi 32:3bf210e07de7 708
chirashi 32:3bf210e07de7 709 int DeptStaIndex = 0;
chirashi 32:3bf210e07de7 710 int TermStaIndex = 0;
chirashi 32:3bf210e07de7 711 //sprintf(SDFilePath,"/sd/E233/RoutePattern/RoutePattern%d.bin",1);
chirashi 32:3bf210e07de7 712 sprintf(SDFilePath,"/sd/E233/RoutePattern/RoutePattern001001.bin");
chirashi 32:3bf210e07de7 713
chirashi 32:3bf210e07de7 714 //始発駅インデックス取得
chirashi 32:3bf210e07de7 715 for(int i = 0; i < MaxStopStation; i++){
chirashi 32:3bf210e07de7 716 FILE *fp = fopen(SDFilePath, "r");
chirashi 32:3bf210e07de7 717 if(fp == NULL) {
chirashi 32:3bf210e07de7 718 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 719 break;
chirashi 32:3bf210e07de7 720 }else{
chirashi 32:3bf210e07de7 721 //停車駅コード取得
chirashi 32:3bf210e07de7 722 int test = 0;
chirashi 32:3bf210e07de7 723 int test2 = 0;
chirashi 32:3bf210e07de7 724 fseek(fp, i*2 + 4, SEEK_SET);
chirashi 32:3bf210e07de7 725 test = getc(fp);
chirashi 32:3bf210e07de7 726 test = test << 8;
chirashi 32:3bf210e07de7 727
chirashi 32:3bf210e07de7 728 fseek(fp, i*2 + 4 + 1, SEEK_SET);
chirashi 32:3bf210e07de7 729 test2 = getc(fp);
chirashi 32:3bf210e07de7 730 test = test ^ test2;
chirashi 32:3bf210e07de7 731 fclose(fp);
chirashi 32:3bf210e07de7 732 if(test == DeptStaNumber){
chirashi 32:3bf210e07de7 733 DeptStaIndex = i + 1;
chirashi 32:3bf210e07de7 734 pc.printf("DeptStaIndex:%d\r\n",DeptStaIndex);
chirashi 32:3bf210e07de7 735 pc.printf("break\r\n");
chirashi 32:3bf210e07de7 736 break;
chirashi 32:3bf210e07de7 737
chirashi 32:3bf210e07de7 738 }
chirashi 32:3bf210e07de7 739 }
chirashi 32:3bf210e07de7 740 pc.printf("DeptSta-loopcount:%d\r\n",i);
chirashi 32:3bf210e07de7 741 }
chirashi 32:3bf210e07de7 742
chirashi 32:3bf210e07de7 743 //終着駅インデックス取得
chirashi 32:3bf210e07de7 744 for(int i = 0; i < MaxStopStation; i++){
chirashi 32:3bf210e07de7 745 FILE *fp = fopen(SDFilePath, "r");
chirashi 32:3bf210e07de7 746 if(fp == NULL) {
chirashi 32:3bf210e07de7 747 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 748 break;
chirashi 32:3bf210e07de7 749 }else{
chirashi 32:3bf210e07de7 750 //停車駅コード取得
chirashi 32:3bf210e07de7 751 int test = 0;
chirashi 32:3bf210e07de7 752 int test2 = 0;
chirashi 32:3bf210e07de7 753 fseek(fp, i*2 + 4, SEEK_SET);
chirashi 32:3bf210e07de7 754 test = getc(fp);
chirashi 32:3bf210e07de7 755 test = test << 8;
chirashi 32:3bf210e07de7 756
chirashi 32:3bf210e07de7 757 fseek(fp, i*2 + 4 + 1, SEEK_SET);
chirashi 32:3bf210e07de7 758 test2 = getc(fp);
chirashi 32:3bf210e07de7 759 test = test ^ test2;
chirashi 32:3bf210e07de7 760 fclose(fp);
chirashi 32:3bf210e07de7 761 if(test == TermStaNumber){
chirashi 32:3bf210e07de7 762 TermStaIndex = i + 1;
chirashi 32:3bf210e07de7 763 pc.printf("TermStaIndex:%d\r\n",TermStaIndex);
chirashi 32:3bf210e07de7 764 pc.printf("break\r\n");
chirashi 32:3bf210e07de7 765 break;
chirashi 32:3bf210e07de7 766
chirashi 32:3bf210e07de7 767 }
chirashi 32:3bf210e07de7 768 }
chirashi 32:3bf210e07de7 769 pc.printf("TermSta-loopcount:%d\r\n",i);
chirashi 32:3bf210e07de7 770 }
chirashi 32:3bf210e07de7 771
chirashi 32:3bf210e07de7 772
chirashi 32:3bf210e07de7 773
chirashi 32:3bf210e07de7 774
chirashi 32:3bf210e07de7 775 if(DeptStaIndex != 0 && TermStaIndex != 0){
chirashi 32:3bf210e07de7 776
chirashi 32:3bf210e07de7 777
chirashi 32:3bf210e07de7 778 //SDRead StopStationCode
chirashi 32:3bf210e07de7 779 //始発駅インデックス < 終着駅インデックスなら
chirashi 32:3bf210e07de7 780 if(DeptStaIndex < TermStaIndex){
chirashi 32:3bf210e07de7 781 for(int i = 0; i < MaxStopStation; i++){
chirashi 32:3bf210e07de7 782 //停車駅コード取得
chirashi 32:3bf210e07de7 783 int test = 0;
chirashi 32:3bf210e07de7 784 int test2 = 0;
chirashi 32:3bf210e07de7 785
chirashi 32:3bf210e07de7 786 FILE *fp = fopen(SDFilePath, "r");
chirashi 32:3bf210e07de7 787 if(fp == NULL) {
chirashi 32:3bf210e07de7 788 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 789 break;
chirashi 32:3bf210e07de7 790 }else{
chirashi 32:3bf210e07de7 791 //pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 792 fseek(fp, DeptStaIndex*2 + i*2 + 4, SEEK_SET);
chirashi 32:3bf210e07de7 793 test = getc(fp);
chirashi 32:3bf210e07de7 794 test = test << 8;
chirashi 32:3bf210e07de7 795
chirashi 32:3bf210e07de7 796 fseek(fp, DeptStaIndex*2 + i*2 + 4 + 1, SEEK_SET);
chirashi 32:3bf210e07de7 797 test2 = getc(fp);
chirashi 32:3bf210e07de7 798 test = test ^ test2;
chirashi 32:3bf210e07de7 799
chirashi 32:3bf210e07de7 800 StopStationCode[i] = test;
chirashi 32:3bf210e07de7 801 pc.printf("StopStationCode[%d]:%d\r\n",i,StopStationCode[i]);
chirashi 32:3bf210e07de7 802
chirashi 32:3bf210e07de7 803 //読み込んだ駅名コードが終着駅コードと同じならばループを抜ける
chirashi 32:3bf210e07de7 804 if(StopStationCode[i] == TermStaNumber){
chirashi 32:3bf210e07de7 805 break;
chirashi 32:3bf210e07de7 806 }
chirashi 32:3bf210e07de7 807 fclose(fp);
chirashi 32:3bf210e07de7 808 }
chirashi 32:3bf210e07de7 809 }
chirashi 32:3bf210e07de7 810 }
chirashi 32:3bf210e07de7 811
chirashi 32:3bf210e07de7 812
chirashi 32:3bf210e07de7 813
chirashi 32:3bf210e07de7 814 }else{
chirashi 32:3bf210e07de7 815 //始発駅インデックス、終着駅インデックスのどちらか、または両方が0の場合運用パターンデータに駅名コードが存在しない
chirashi 32:3bf210e07de7 816 pc.printf("Error DeptStaIndex or TermStaIndex = 0\r\n");
chirashi 32:3bf210e07de7 817 pc.printf("Error DeptStaIndex:%d,TermStaIndex:%d",DeptStaIndex,TermStaIndex);
chirashi 32:3bf210e07de7 818 }
chirashi 32:3bf210e07de7 819
chirashi 32:3bf210e07de7 820 //test end
chirashi 32:3bf210e07de7 821
chirashi 32:3bf210e07de7 822 //ScrollDebug
chirashi 32:3bf210e07de7 823 ScrollWriteCount = 80;
chirashi 32:3bf210e07de7 824
chirashi 32:3bf210e07de7 825 //この電車の停車駅は、
chirashi 32:3bf210e07de7 826 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",1);
chirashi 32:3bf210e07de7 827 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 32:3bf210e07de7 828 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 32:3bf210e07de7 829 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",2);
chirashi 32:3bf210e07de7 830 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 32:3bf210e07de7 831 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 32:3bf210e07de7 832
chirashi 32:3bf210e07de7 833 for(int i = 0; i < MaxStopStation; i++){
chirashi 32:3bf210e07de7 834 if(StopStationCode[i] == 0){
chirashi 32:3bf210e07de7 835 break;
chirashi 32:3bf210e07de7 836 }
chirashi 32:3bf210e07de7 837 //駅名
chirashi 32:3bf210e07de7 838 sprintf(SDFilePath,"/sd/E233/StationName/%d.bin",StopStationCode[i]);
chirashi 32:3bf210e07de7 839 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,128,16);
chirashi 32:3bf210e07de7 840
chirashi 32:3bf210e07de7 841 //駅名文字数取得
chirashi 32:3bf210e07de7 842 int test = 0;
chirashi 32:3bf210e07de7 843 sprintf(SDFilePath,"/sd/E233/StationNameLength.bin");
chirashi 32:3bf210e07de7 844 FILE *fp = fopen(SDFilePath, "r");
chirashi 32:3bf210e07de7 845 if(fp == NULL) {
chirashi 32:3bf210e07de7 846 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 847 }else{
chirashi 32:3bf210e07de7 848 //pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 849 fseek(fp, StopStationCode[i], SEEK_SET);
chirashi 32:3bf210e07de7 850 test = getc(fp);
chirashi 32:3bf210e07de7 851 //pc.printf("StationNameLength:%d\r\n",test);
chirashi 32:3bf210e07de7 852 fclose(fp);
chirashi 32:3bf210e07de7 853 }
chirashi 32:3bf210e07de7 854
chirashi 32:3bf210e07de7 855 ScrollWriteCount = ScrollWriteCount + (test * 16);
chirashi 32:3bf210e07de7 856 sprintf(SDFilePath,"/sd/E233/StopStation/0x8132.bin");
chirashi 32:3bf210e07de7 857 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,16,16);
chirashi 32:3bf210e07de7 858 ScrollWriteCount = ScrollWriteCount + 16;
chirashi 32:3bf210e07de7 859 }
chirashi 32:3bf210e07de7 860 ScrollWriteCount = ScrollWriteCount - 16;
chirashi 32:3bf210e07de7 861 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",3);
chirashi 32:3bf210e07de7 862 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 32:3bf210e07de7 863 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 32:3bf210e07de7 864 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",4);
chirashi 32:3bf210e07de7 865 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 32:3bf210e07de7 866 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 32:3bf210e07de7 867
chirashi 32:3bf210e07de7 868 }
chirashi 18:b8563e3319fd 869
chirashi 18:b8563e3319fd 870
chirashi 18:b8563e3319fd 871 void SDFileRead(){
chirashi 19:26e0fae24da6 872
chirashi 19:26e0fae24da6 873 //3段階表示 LEDBuffer [種別]路線名(・次駅)
chirashi 19:26e0fae24da6 874 // LEDBuffer2 [種別]行先・次駅
chirashi 19:26e0fae24da6 875 // LEDBuffer3 [種別(英)]行先(英)・次駅(英)
chirashi 19:26e0fae24da6 876
chirashi 18:b8563e3319fd 877 //SDCard
chirashi 18:b8563e3319fd 878 //種別
chirashi 18:b8563e3319fd 879 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 18:b8563e3319fd 880 SDBufferWrite(LEDBuffer,0,0,48,32);
chirashi 18:b8563e3319fd 881 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 18:b8563e3319fd 882 SDBufferWrite(LEDBuffer2,0,0,48,32);
chirashi 18:b8563e3319fd 883 //種別(英語)
chirashi 18:b8563e3319fd 884 sprintf(SDFilePath,"/sd/E233/KindE/%d.bin",KindNumber);
chirashi 19:26e0fae24da6 885 SDBufferWrite(LEDBuffer3,0,0,48,32);
chirashi 19:26e0fae24da6 886
chirashi 18:b8563e3319fd 887 //路線名
chirashi 18:b8563e3319fd 888 sprintf(SDFilePath,"/sd/E233/Line/%d.bin",LineNumber);
chirashi 18:b8563e3319fd 889 SDBufferWrite(LEDBuffer,48,0,80,32);
chirashi 18:b8563e3319fd 890 //行先
chirashi 18:b8563e3319fd 891 sprintf(SDFilePath,"/sd/E233/For/%d.bin",ForNumber);
chirashi 18:b8563e3319fd 892 SDBufferWrite(LEDBuffer2,48,0,80,16);
chirashi 18:b8563e3319fd 893 //行先(英語)
chirashi 18:b8563e3319fd 894 sprintf(SDFilePath,"/sd/E233/ForE/%d.bin",ForNumber);
chirashi 18:b8563e3319fd 895 SDBufferWrite(LEDBuffer3,48,0,80,16);
chirashi 18:b8563e3319fd 896
chirashi 18:b8563e3319fd 897 //次停車駅(路線名表示)
chirashi 18:b8563e3319fd 898 //路線名表示の次停車駅は路線名表示が上半分に収まるときのみ表示
chirashi 18:b8563e3319fd 899 if(BufferBlankCheck() == 0){
chirashi 18:b8563e3319fd 900 sprintf(SDFilePath,"/sd/E233/NextStation/%d.bin",NextStaNumber);
chirashi 18:b8563e3319fd 901 SDBufferWrite(LEDBuffer,48,16,80,16);
chirashi 18:b8563e3319fd 902 }
chirashi 18:b8563e3319fd 903 //次停車駅
chirashi 18:b8563e3319fd 904 sprintf(SDFilePath,"/sd/E233/NextStation/%d.bin",NextStaNumber);
chirashi 19:26e0fae24da6 905 SDBufferWrite(LEDBuffer2,48,16,80,16);
chirashi 18:b8563e3319fd 906 //次停車駅(英語)
chirashi 18:b8563e3319fd 907 sprintf(SDFilePath,"/sd/E233/NextStationE/%d.bin",NextStaNumber);
chirashi 18:b8563e3319fd 908 SDBufferWrite(LEDBuffer3,48,16,80,16);
chirashi 22:ebab951db9f6 909
chirashi 22:ebab951db9f6 910
chirashi 19:26e0fae24da6 911
chirashi 19:26e0fae24da6 912 //路線コードが0なら2段階表示に変更
chirashi 19:26e0fae24da6 913 if(LineNumber == 0){
chirashi 19:26e0fae24da6 914 DisplayMode = 4;
chirashi 19:26e0fae24da6 915 }else{
chirashi 19:26e0fae24da6 916 DisplayMode = 1;
chirashi 19:26e0fae24da6 917 }
chirashi 24:7232abdf7884 918
chirashi 24:7232abdf7884 919 //2段階(次駅なし)
chirashi 19:26e0fae24da6 920 //次駅コードが0なら次駅なしの2段階表示に変更
chirashi 19:26e0fae24da6 921 // 2段階表示 LEDBuffer [種別]路線名
chirashi 19:26e0fae24da6 922 // LEDBuffer2 [種別]行先(次駅表示なし)
chirashi 19:26e0fae24da6 923 //路線名がない場合(E233-0など)は固定表示
chirashi 19:26e0fae24da6 924
chirashi 19:26e0fae24da6 925 if(NextStaNumber == 0){
chirashi 19:26e0fae24da6 926 //種別
chirashi 19:26e0fae24da6 927 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 19:26e0fae24da6 928 SDBufferWrite(LEDBuffer,0,0,48,32);
chirashi 19:26e0fae24da6 929 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 19:26e0fae24da6 930 SDBufferWrite(LEDBuffer2,0,0,48,32);
chirashi 19:26e0fae24da6 931
chirashi 19:26e0fae24da6 932 //路線名
chirashi 19:26e0fae24da6 933 sprintf(SDFilePath,"/sd/E233/Line2/%d.bin",LineNumber);
chirashi 19:26e0fae24da6 934 SDBufferWrite(LEDBuffer,48,0,80,32);
chirashi 19:26e0fae24da6 935 //行先
chirashi 19:26e0fae24da6 936 sprintf(SDFilePath,"/sd/E233/For2/%d.bin",ForNumber);
chirashi 19:26e0fae24da6 937 SDBufferWrite(LEDBuffer2,48,0,80,32);
chirashi 19:26e0fae24da6 938
chirashi 19:26e0fae24da6 939 //路線コードが0なら行先で固定表示
chirashi 19:26e0fae24da6 940 if(LineNumber == 0){
chirashi 19:26e0fae24da6 941 DisplayMode = 3;
chirashi 19:26e0fae24da6 942 }else{
chirashi 19:26e0fae24da6 943 DisplayMode = 2;
chirashi 19:26e0fae24da6 944 }
chirashi 19:26e0fae24da6 945 }
chirashi 19:26e0fae24da6 946
chirashi 24:7232abdf7884 947
chirashi 24:7232abdf7884 948 //全面種別固定表示
chirashi 24:7232abdf7884 949 //路線名、行先、次駅がすべて0なら種別を全面に固定表示
chirashi 24:7232abdf7884 950 if(LineNumber == 0 && ForNumber == 0 && NextStaNumber == 0){
chirashi 24:7232abdf7884 951
chirashi 24:7232abdf7884 952 //種別
chirashi 24:7232abdf7884 953 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 24:7232abdf7884 954 SDBufferWrite(LEDBuffer2,0,0,48,32);
chirashi 24:7232abdf7884 955 sprintf(SDFilePath,"/sd/E233/Kind2/%d.bin",KindNumber);
chirashi 24:7232abdf7884 956 SDBufferWrite(LEDBuffer2,0,0,128,32);
chirashi 24:7232abdf7884 957
chirashi 24:7232abdf7884 958 //固定表示に変更
chirashi 24:7232abdf7884 959 DisplayMode = 3;
chirashi 24:7232abdf7884 960 }
chirashi 24:7232abdf7884 961
chirashi 24:7232abdf7884 962
chirashi 24:7232abdf7884 963
chirashi 19:26e0fae24da6 964 //WriteMode = 3 固定表示 LEDBuffer2 行先(次駅表示なし 32x128)
chirashi 19:26e0fae24da6 965 //else if(WriteMode == 3){
chirashi 19:26e0fae24da6 966 if(WriteMode == 3){
chirashi 19:26e0fae24da6 967 //データ作ってないからとりあえず80x32の行先データを表示
chirashi 19:26e0fae24da6 968
chirashi 19:26e0fae24da6 969 sprintf(SDFilePath,"/sd/E233/For2/%d.bin",ForNumber);
chirashi 19:26e0fae24da6 970 SDBufferWrite(LEDBuffer2,48,0,80,32);
chirashi 19:26e0fae24da6 971
chirashi 19:26e0fae24da6 972 DisplayMode = 3;
chirashi 19:26e0fae24da6 973
chirashi 19:26e0fae24da6 974 }
chirashi 18:b8563e3319fd 975
chirashi 20:4f9719182866 976 //Debug
chirashi 20:4f9719182866 977 if(Debug == 1){
chirashi 20:4f9719182866 978 //DataSerialOut
chirashi 20:4f9719182866 979 for(int y = 0; y < 32; y++){
chirashi 20:4f9719182866 980 for(int x = 0; x <128; x++){
chirashi 20:4f9719182866 981 if(LEDBuffer[y][x]== 0){
chirashi 20:4f9719182866 982 //pc.printf("0,");
chirashi 20:4f9719182866 983 pc.printf(" ");
chirashi 20:4f9719182866 984 }else{
chirashi 20:4f9719182866 985 //pc.printf("#");
chirashi 20:4f9719182866 986 pc.printf("%.02d",LEDBuffer[y][x]);
chirashi 20:4f9719182866 987 }
chirashi 20:4f9719182866 988 }
chirashi 20:4f9719182866 989 pc.printf("\r\n");
chirashi 20:4f9719182866 990 }
chirashi 20:4f9719182866 991 }
chirashi 18:b8563e3319fd 992
chirashi 18:b8563e3319fd 993 }
chirashi 18:b8563e3319fd 994
chirashi 18:b8563e3319fd 995
chirashi 31:d186b04b983e 996 int CharToInt(unsigned char Sertemp1,unsigned char Sertemp2,unsigned char Sertemp3){
chirashi 31:d186b04b983e 997 int n1 = 0 ;
chirashi 31:d186b04b983e 998 int n2 = 0 ;
chirashi 31:d186b04b983e 999 int n3 = 0 ;
chirashi 31:d186b04b983e 1000 int n = 0;
chirashi 31:d186b04b983e 1001
chirashi 31:d186b04b983e 1002 if ( Sertemp1 < '0' || Sertemp1 > '9' ) {
chirashi 31:d186b04b983e 1003 // error
chirashi 31:d186b04b983e 1004 } else {
chirashi 31:d186b04b983e 1005 n1 = (int)(Sertemp1 - '0') ;
chirashi 31:d186b04b983e 1006 //pc.printf("%d,",n1);
chirashi 31:d186b04b983e 1007 }
chirashi 31:d186b04b983e 1008 if ( Sertemp2 < '0' || Sertemp2 > '9' ) {
chirashi 31:d186b04b983e 1009 // error
chirashi 31:d186b04b983e 1010 } else {
chirashi 31:d186b04b983e 1011 n2 = (int)(Sertemp2 - '0') ;
chirashi 31:d186b04b983e 1012 //pc.printf("%d,",n2);
chirashi 31:d186b04b983e 1013 }
chirashi 31:d186b04b983e 1014 if ( Sertemp3 < '0' || Sertemp3 > '9' ) {
chirashi 31:d186b04b983e 1015 // error
chirashi 31:d186b04b983e 1016 } else {
chirashi 31:d186b04b983e 1017 n3 = (int)(Sertemp3 - '0') ;
chirashi 31:d186b04b983e 1018 //pc.printf("%d\r\n",n3);
chirashi 31:d186b04b983e 1019 }
chirashi 31:d186b04b983e 1020 n = (n1 * 100) + (n2 * 10) + n3;
chirashi 31:d186b04b983e 1021 return n;
chirashi 31:d186b04b983e 1022 }
chirashi 31:d186b04b983e 1023
chirashi 31:d186b04b983e 1024
chirashi 17:95bcbc53d96b 1025 void pc_rx(){
chirashi 17:95bcbc53d96b 1026 //pc.putc(pc.getc());
chirashi 17:95bcbc53d96b 1027
chirashi 22:ebab951db9f6 1028 OE = HIGH;
chirashi 17:95bcbc53d96b 1029
chirashi 17:95bcbc53d96b 1030 if (pc.readable() == 1) { // 受信したデータが存在する
chirashi 30:3ac9aa4faa34 1031 if (busyflag == false){
chirashi 30:3ac9aa4faa34 1032 SerialBuffer[count] = pc.getc(); // 受信データを読み込む
chirashi 30:3ac9aa4faa34 1033
chirashi 30:3ac9aa4faa34 1034 }else{
chirashi 30:3ac9aa4faa34 1035 pc.printf("busy\r\n");
chirashi 30:3ac9aa4faa34 1036 }
chirashi 30:3ac9aa4faa34 1037
chirashi 30:3ac9aa4faa34 1038 if (count > 29 || SerialBuffer[count] == '$') { // 文字数が既定の個数を超えた場合、又は終了文字を受信した場合
chirashi 30:3ac9aa4faa34 1039 busyflag = true;
chirashi 30:3ac9aa4faa34 1040
chirashi 30:3ac9aa4faa34 1041 //SerialBuffer[count] = '\0'; // 末尾に終端文字を入れる
chirashi 30:3ac9aa4faa34 1042
chirashi 30:3ac9aa4faa34 1043 for(int a = 0; a < count; a++){
chirashi 30:3ac9aa4faa34 1044 ABuffer[a] = SerialBuffer[a];
chirashi 30:3ac9aa4faa34 1045 }
chirashi 30:3ac9aa4faa34 1046
chirashi 17:95bcbc53d96b 1047 count = 0;
chirashi 24:7232abdf7884 1048
chirashi 24:7232abdf7884 1049 //路線名 L
chirashi 30:3ac9aa4faa34 1050 if(ABuffer[0] == 'L'){
chirashi 31:d186b04b983e 1051 //路線名 L
chirashi 31:d186b04b983e 1052 //ABuffer[0]は'L'
chirashi 31:d186b04b983e 1053 LineNumber = CharToInt(ABuffer[1],ABuffer[2],ABuffer[3]);
chirashi 31:d186b04b983e 1054 pc.printf("Line:%d\r\n",LineNumber);
chirashi 18:b8563e3319fd 1055 }
chirashi 18:b8563e3319fd 1056
chirashi 24:7232abdf7884 1057 //種別 K
chirashi 30:3ac9aa4faa34 1058 if(ABuffer[0] == 'K'){
chirashi 31:d186b04b983e 1059 //種別 K
chirashi 31:d186b04b983e 1060 //ABuffer[0]は'K'
chirashi 31:d186b04b983e 1061 KindNumber = CharToInt(ABuffer[1],ABuffer[2],ABuffer[3]);
chirashi 31:d186b04b983e 1062 pc.printf("Kind:%d\r\n",KindNumber);
chirashi 18:b8563e3319fd 1063 }
chirashi 18:b8563e3319fd 1064
chirashi 24:7232abdf7884 1065 //行先 F
chirashi 30:3ac9aa4faa34 1066 if(ABuffer[0] == 'F'){
chirashi 31:d186b04b983e 1067 //行先 F
chirashi 31:d186b04b983e 1068 //ABuffer[0]は'F'
chirashi 31:d186b04b983e 1069 ForNumber = CharToInt(ABuffer[1],ABuffer[2],ABuffer[3]);
chirashi 31:d186b04b983e 1070 pc.printf("For:%d\r\n",ForNumber);
chirashi 18:b8563e3319fd 1071 }
chirashi 18:b8563e3319fd 1072
chirashi 31:d186b04b983e 1073 //次停車駅 N
chirashi 30:3ac9aa4faa34 1074 if(ABuffer[0] == 'N'){
chirashi 31:d186b04b983e 1075 //次停車駅 N
chirashi 31:d186b04b983e 1076 //ABuffer[0]は'N'
chirashi 31:d186b04b983e 1077 NextStaNumber = CharToInt(ABuffer[1],ABuffer[2],ABuffer[3]);
chirashi 31:d186b04b983e 1078 pc.printf("NextStation:%d\r\n",NextStaNumber);
chirashi 19:26e0fae24da6 1079 }
chirashi 18:b8563e3319fd 1080
chirashi 24:7232abdf7884 1081 //スクロール有効/無効 S
chirashi 30:3ac9aa4faa34 1082 if(ABuffer[0] == 'S'){
chirashi 30:3ac9aa4faa34 1083 unsigned char Sertemp1 = ABuffer[1];
chirashi 24:7232abdf7884 1084 int n1 = 0 ;
chirashi 24:7232abdf7884 1085 int n = 0;
chirashi 24:7232abdf7884 1086
chirashi 24:7232abdf7884 1087 if ( Sertemp1 < '0' || Sertemp1 > '9' ) {
chirashi 24:7232abdf7884 1088 // error
chirashi 24:7232abdf7884 1089 } else {
chirashi 24:7232abdf7884 1090 n1 = (int)(Sertemp1 - '0') ;
chirashi 24:7232abdf7884 1091 //pc.printf("%d,",n1);
chirashi 24:7232abdf7884 1092 }
chirashi 24:7232abdf7884 1093
chirashi 24:7232abdf7884 1094 n = n1;
chirashi 24:7232abdf7884 1095 Scroll = n;
chirashi 24:7232abdf7884 1096 pc.printf("Scroll:%d\r\n",n);
chirashi 24:7232abdf7884 1097 }
chirashi 24:7232abdf7884 1098
chirashi 24:7232abdf7884 1099 //起動 Set
chirashi 30:3ac9aa4faa34 1100 if(ABuffer[0] == 'S' && ABuffer[1] == 'e' && ABuffer[2] == 't'){
chirashi 18:b8563e3319fd 1101 pc.printf("Set\r\n");
chirashi 18:b8563e3319fd 1102 SDFileRead();
chirashi 17:95bcbc53d96b 1103 }
chirashi 31:d186b04b983e 1104
chirashi 31:d186b04b983e 1105 //データ一括設定
chirashi 31:d186b04b983e 1106 //先頭文字:'A'
chirashi 31:d186b04b983e 1107 if(ABuffer[0] == 'A'){
chirashi 31:d186b04b983e 1108 //路線名 L
chirashi 31:d186b04b983e 1109 //ABuffer[1]は'L'
chirashi 31:d186b04b983e 1110 LineNumber = CharToInt(ABuffer[2],ABuffer[3],ABuffer[4]);
chirashi 31:d186b04b983e 1111 pc.printf("Line:%d\r\n",LineNumber);
chirashi 31:d186b04b983e 1112
chirashi 31:d186b04b983e 1113 //種別 K
chirashi 31:d186b04b983e 1114 //ABuffer[5]は'K'
chirashi 31:d186b04b983e 1115 KindNumber = CharToInt(ABuffer[6],ABuffer[7],ABuffer[8]);
chirashi 31:d186b04b983e 1116 pc.printf("Kind:%d\r\n",KindNumber);
chirashi 31:d186b04b983e 1117
chirashi 31:d186b04b983e 1118 //行先 F
chirashi 31:d186b04b983e 1119 //ABuffer[9]は'F'
chirashi 31:d186b04b983e 1120 ForNumber = CharToInt(ABuffer[10],ABuffer[11],ABuffer[12]);
chirashi 31:d186b04b983e 1121 pc.printf("For:%d\r\n",ForNumber);
chirashi 31:d186b04b983e 1122
chirashi 31:d186b04b983e 1123 //次停車駅 N
chirashi 31:d186b04b983e 1124 //ABuffer[13]は'N'
chirashi 31:d186b04b983e 1125 NextStaNumber = CharToInt(ABuffer[14],ABuffer[15],ABuffer[16]);
chirashi 31:d186b04b983e 1126 pc.printf("NextStation:%d\r\n",NextStaNumber);
chirashi 31:d186b04b983e 1127
chirashi 31:d186b04b983e 1128 //一括設定時は続けてSDからの読み込み
chirashi 31:d186b04b983e 1129 pc.printf("Set\r\n");
chirashi 31:d186b04b983e 1130 SDFileRead();
chirashi 31:d186b04b983e 1131 Scroll = 0;
chirashi 31:d186b04b983e 1132 //即時反映
chirashi 31:d186b04b983e 1133 TimerTick();
chirashi 31:d186b04b983e 1134 }
chirashi 31:d186b04b983e 1135
chirashi 32:3bf210e07de7 1136 //データ一括設定2
chirashi 32:3bf210e07de7 1137 //先頭文字:'B'
chirashi 32:3bf210e07de7 1138 if(ABuffer[0] == 'B'){
chirashi 32:3bf210e07de7 1139 //路線名 L
chirashi 32:3bf210e07de7 1140 //ABuffer[1]は'L'
chirashi 32:3bf210e07de7 1141 LineNumber = CharToInt(ABuffer[2],ABuffer[3],ABuffer[4]);
chirashi 32:3bf210e07de7 1142 pc.printf("Line:%d\r\n",LineNumber);
chirashi 32:3bf210e07de7 1143
chirashi 32:3bf210e07de7 1144 //次停車駅 N
chirashi 32:3bf210e07de7 1145 //ABuffer[5]は'N'
chirashi 32:3bf210e07de7 1146 NextStaNumber = CharToInt(ABuffer[6],ABuffer[7],ABuffer[8]);
chirashi 32:3bf210e07de7 1147 pc.printf("NextStation:%d\r\n",NextStaNumber);
chirashi 32:3bf210e07de7 1148
chirashi 32:3bf210e07de7 1149 //運用パターン P
chirashi 32:3bf210e07de7 1150 //Pxxxyyyzzz
chirashi 32:3bf210e07de7 1151 //x:運用パターン番号(3桁)
chirashi 32:3bf210e07de7 1152 //y:始発駅(3桁)
chirashi 32:3bf210e07de7 1153 //z:終着駅(3桁)
chirashi 32:3bf210e07de7 1154 //ABuffer[9]は'P'
chirashi 32:3bf210e07de7 1155 RoutePatternNumber = CharToInt(ABuffer[10],ABuffer[11],ABuffer[12]);
chirashi 32:3bf210e07de7 1156 pc.printf("RoutePattern:%d\r\n",RoutePatternNumber);
chirashi 32:3bf210e07de7 1157
chirashi 32:3bf210e07de7 1158 DeptStaNumber = CharToInt(ABuffer[13],ABuffer[14],ABuffer[15]);
chirashi 32:3bf210e07de7 1159 pc.printf("DeptStaNumber:%d\r\n",DeptStaNumber);
chirashi 32:3bf210e07de7 1160 TermStaNumber = CharToInt(ABuffer[16],ABuffer[17],ABuffer[18]);
chirashi 32:3bf210e07de7 1161 pc.printf("TermStaNumber:%d\r\n",TermStaNumber);
chirashi 32:3bf210e07de7 1162
chirashi 32:3bf210e07de7 1163
chirashi 32:3bf210e07de7 1164 //一括設定時は続けてSDからの読み込み
chirashi 32:3bf210e07de7 1165 pc.printf("Set\r\n");
chirashi 32:3bf210e07de7 1166 SDFileRead();
chirashi 32:3bf210e07de7 1167 ScrollRead2();
chirashi 32:3bf210e07de7 1168 Scroll = 1;
chirashi 32:3bf210e07de7 1169 //即時反映
chirashi 32:3bf210e07de7 1170 TimerTick();
chirashi 32:3bf210e07de7 1171 }
chirashi 32:3bf210e07de7 1172
chirashi 30:3ac9aa4faa34 1173 busyflag = false;
chirashi 17:95bcbc53d96b 1174 }else{
chirashi 17:95bcbc53d96b 1175 count++;
chirashi 17:95bcbc53d96b 1176 }
chirashi 17:95bcbc53d96b 1177 }
chirashi 22:ebab951db9f6 1178
chirashi 22:ebab951db9f6 1179 OE = LOW;
chirashi 17:95bcbc53d96b 1180 }
chirashi 17:95bcbc53d96b 1181
chirashi 32:3bf210e07de7 1182 void ScrollRead(){
chirashi 32:3bf210e07de7 1183 //test
chirashi 32:3bf210e07de7 1184 //Initialize StopStationCode
chirashi 32:3bf210e07de7 1185 for (int x = 0; x < MaxStopStation; x++){
chirashi 32:3bf210e07de7 1186 StopStationCode[x]= 0;
chirashi 32:3bf210e07de7 1187 }
chirashi 32:3bf210e07de7 1188
chirashi 32:3bf210e07de7 1189 //SDRead StopStationCode
chirashi 32:3bf210e07de7 1190 for(int i = 0; i < MaxStopStation; i++){
chirashi 32:3bf210e07de7 1191
chirashi 32:3bf210e07de7 1192 //停車駅コード取得
chirashi 32:3bf210e07de7 1193 int test = 0;
chirashi 32:3bf210e07de7 1194 int test2 = 0;
chirashi 32:3bf210e07de7 1195 sprintf(SDFilePath,"/sd/E233/StopStationList/%d.bin",1);
chirashi 32:3bf210e07de7 1196 FILE *fp = fopen(SDFilePath, "r");
chirashi 32:3bf210e07de7 1197 if(fp == NULL) {
chirashi 32:3bf210e07de7 1198 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 1199 break;
chirashi 32:3bf210e07de7 1200
chirashi 32:3bf210e07de7 1201 }else{
chirashi 32:3bf210e07de7 1202 //pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 1203 fseek(fp, i*2, SEEK_SET);
chirashi 32:3bf210e07de7 1204 test = getc(fp);
chirashi 32:3bf210e07de7 1205 test = test << 8;
chirashi 32:3bf210e07de7 1206
chirashi 32:3bf210e07de7 1207 fseek(fp, i*2 + 1, SEEK_SET);
chirashi 32:3bf210e07de7 1208 test2 = getc(fp);
chirashi 32:3bf210e07de7 1209 test = test ^ test2;
chirashi 32:3bf210e07de7 1210
chirashi 32:3bf210e07de7 1211 StopStationCode[i] = test;
chirashi 32:3bf210e07de7 1212 pc.printf("StopStationCode[%d]:%d\r\n",i,StopStationCode[i]);
chirashi 32:3bf210e07de7 1213
chirashi 32:3bf210e07de7 1214 if(StopStationCode[i] == 0){
chirashi 32:3bf210e07de7 1215 break;
chirashi 32:3bf210e07de7 1216 }
chirashi 32:3bf210e07de7 1217 fclose(fp);
chirashi 32:3bf210e07de7 1218 }
chirashi 32:3bf210e07de7 1219 }
chirashi 32:3bf210e07de7 1220
chirashi 32:3bf210e07de7 1221 //test end
chirashi 32:3bf210e07de7 1222
chirashi 32:3bf210e07de7 1223 //ScrollDebug
chirashi 32:3bf210e07de7 1224 ScrollWriteCount = 80;
chirashi 32:3bf210e07de7 1225
chirashi 32:3bf210e07de7 1226 //この電車の停車駅は、
chirashi 32:3bf210e07de7 1227 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",1);
chirashi 32:3bf210e07de7 1228 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 32:3bf210e07de7 1229 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 32:3bf210e07de7 1230 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",2);
chirashi 32:3bf210e07de7 1231 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 32:3bf210e07de7 1232 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 32:3bf210e07de7 1233
chirashi 32:3bf210e07de7 1234 for(int i = 0; i < MaxStopStation; i++){
chirashi 32:3bf210e07de7 1235 if(StopStationCode[i] == 0){
chirashi 32:3bf210e07de7 1236 break;
chirashi 32:3bf210e07de7 1237 }
chirashi 32:3bf210e07de7 1238 //駅名
chirashi 32:3bf210e07de7 1239 sprintf(SDFilePath,"/sd/E233/StationName/%d.bin",StopStationCode[i]);
chirashi 32:3bf210e07de7 1240 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,128,16);
chirashi 32:3bf210e07de7 1241
chirashi 32:3bf210e07de7 1242 //駅名文字数取得
chirashi 32:3bf210e07de7 1243 int test = 0;
chirashi 32:3bf210e07de7 1244 sprintf(SDFilePath,"/sd/E233/StationNameLength.bin");
chirashi 32:3bf210e07de7 1245 FILE *fp = fopen(SDFilePath, "r");
chirashi 32:3bf210e07de7 1246 if(fp == NULL) {
chirashi 32:3bf210e07de7 1247 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 1248 }else{
chirashi 32:3bf210e07de7 1249 //pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 32:3bf210e07de7 1250 fseek(fp, StopStationCode[i], SEEK_SET);
chirashi 32:3bf210e07de7 1251 test = getc(fp);
chirashi 32:3bf210e07de7 1252 //pc.printf("StationNameLength:%d\r\n",test);
chirashi 32:3bf210e07de7 1253 fclose(fp);
chirashi 32:3bf210e07de7 1254 }
chirashi 32:3bf210e07de7 1255
chirashi 32:3bf210e07de7 1256 ScrollWriteCount = ScrollWriteCount + (test * 16);
chirashi 32:3bf210e07de7 1257 sprintf(SDFilePath,"/sd/E233/StopStation/0x8132.bin");
chirashi 32:3bf210e07de7 1258 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,16,16);
chirashi 32:3bf210e07de7 1259 ScrollWriteCount = ScrollWriteCount + 16;
chirashi 32:3bf210e07de7 1260 }
chirashi 32:3bf210e07de7 1261 ScrollWriteCount = ScrollWriteCount - 16;
chirashi 32:3bf210e07de7 1262 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",3);
chirashi 32:3bf210e07de7 1263 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 32:3bf210e07de7 1264 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 32:3bf210e07de7 1265 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",4);
chirashi 32:3bf210e07de7 1266 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 32:3bf210e07de7 1267 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 32:3bf210e07de7 1268
chirashi 32:3bf210e07de7 1269 }
chirashi 32:3bf210e07de7 1270
chirashi 32:3bf210e07de7 1271
chirashi 32:3bf210e07de7 1272
chirashi 32:3bf210e07de7 1273
chirashi 32:3bf210e07de7 1274
chirashi 32:3bf210e07de7 1275
chirashi 32:3bf210e07de7 1276
chirashi 32:3bf210e07de7 1277
chirashi 17:95bcbc53d96b 1278 int main(){
chirashi 13:0c542447e6da 1279 Init(); // Set things up
chirashi 13:0c542447e6da 1280 //Serial
chirashi 30:3ac9aa4faa34 1281
chirashi 13:0c542447e6da 1282 pc.printf("Power ON\r\n");
chirashi 13:0c542447e6da 1283
chirashi 17:95bcbc53d96b 1284
chirashi 13:0c542447e6da 1285 //SumSW
chirashi 29:bc82c25b6b94 1286 //int testData[16] = {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0};
chirashi 29:bc82c25b6b94 1287 //SI = LOW;
chirashi 29:bc82c25b6b94 1288 //for(int a = 0; a < 16; a++){
chirashi 29:bc82c25b6b94 1289 // if(testData[a] == 1){
chirashi 29:bc82c25b6b94 1290 // SI = HIGH;
chirashi 29:bc82c25b6b94 1291 // pc.printf("1,");
chirashi 29:bc82c25b6b94 1292 // }else{
chirashi 29:bc82c25b6b94 1293 // SI = LOW;
chirashi 29:bc82c25b6b94 1294 // pc.printf("0,");
chirashi 29:bc82c25b6b94 1295 // }
chirashi 29:bc82c25b6b94 1296 // SCK = HIGH;
chirashi 29:bc82c25b6b94 1297 // wait_us(15);
chirashi 29:bc82c25b6b94 1298 // SCK = LOW;
chirashi 29:bc82c25b6b94 1299 // wait_us(15);
chirashi 29:bc82c25b6b94 1300 //}
chirashi 13:0c542447e6da 1301
chirashi 29:bc82c25b6b94 1302 //RCK = HIGH;
chirashi 29:bc82c25b6b94 1303 //wait_us(15);
chirashi 29:bc82c25b6b94 1304 //RCK = LOW;
chirashi 29:bc82c25b6b94 1305 //pc.printf("\r\n");
chirashi 8:9d22c9910917 1306
chirashi 29:bc82c25b6b94 1307 //int SumSWNum = 0;
chirashi 29:bc82c25b6b94 1308 //if(SumSW1 == 1 ){
chirashi 29:bc82c25b6b94 1309 // SumSWNum = SumSWNum + 1;
chirashi 29:bc82c25b6b94 1310 //}
chirashi 29:bc82c25b6b94 1311 //if(SumSW2 == 1){
chirashi 29:bc82c25b6b94 1312 // SumSWNum = SumSWNum + 2;
chirashi 29:bc82c25b6b94 1313 //}
chirashi 29:bc82c25b6b94 1314 //if(SumSW4 == 1){
chirashi 29:bc82c25b6b94 1315 // SumSWNum = SumSWNum + 4;
chirashi 29:bc82c25b6b94 1316 //}
chirashi 29:bc82c25b6b94 1317 //if(SumSW8 == 1){
chirashi 29:bc82c25b6b94 1318 // SumSWNum = SumSWNum + 8;
chirashi 29:bc82c25b6b94 1319 //}
chirashi 29:bc82c25b6b94 1320 //pc.printf("SumSW:%d\r\n",SumSWNum);
chirashi 8:9d22c9910917 1321
chirashi 18:b8563e3319fd 1322
chirashi 29:bc82c25b6b94 1323 //SDカードから表示データを読み込み
chirashi 18:b8563e3319fd 1324 SDFileRead();
chirashi 25:8b1da0f21d32 1325
chirashi 29:bc82c25b6b94 1326 //起動時にスクロールデータを読み込み
chirashi 25:8b1da0f21d32 1327 if(ScrollEnable == 1){
chirashi 32:3bf210e07de7 1328 ScrollRead2();
chirashi 25:8b1da0f21d32 1329 }
chirashi 23:6fb1181345a7 1330
chirashi 8:9d22c9910917 1331
chirashi 13:0c542447e6da 1332 //Debug
chirashi 14:0f4d44927b20 1333 if(Debug == 1){
chirashi 14:0f4d44927b20 1334 //DataSerialOut
chirashi 14:0f4d44927b20 1335 for(int y = 0; y < 32; y++){
chirashi 14:0f4d44927b20 1336 for(int x = 0; x <128; x++){
chirashi 14:0f4d44927b20 1337 if(LEDBuffer[y][x]== 0){
chirashi 14:0f4d44927b20 1338 //pc.printf("0,");
chirashi 14:0f4d44927b20 1339 pc.printf(" ");
chirashi 14:0f4d44927b20 1340 }else{
chirashi 14:0f4d44927b20 1341 //pc.printf("#");
chirashi 14:0f4d44927b20 1342 pc.printf("%.02d",LEDBuffer[y][x]);
chirashi 14:0f4d44927b20 1343 }
chirashi 13:0c542447e6da 1344 }
chirashi 14:0f4d44927b20 1345 pc.printf("\r\n");
chirashi 13:0c542447e6da 1346 }
chirashi 13:0c542447e6da 1347 }
chirashi 23:6fb1181345a7 1348
chirashi 23:6fb1181345a7 1349 //test
chirashi 28:4cc6aa3acd92 1350 //sprintf(SDFilePath,"/sd/E233/whitetest.bin");
chirashi 24:7232abdf7884 1351 //SDBufferWrite(LEDBuffer,0,0,128,32);
chirashi 23:6fb1181345a7 1352
chirashi 28:4cc6aa3acd92 1353 //2段階表示に変更
chirashi 28:4cc6aa3acd92 1354 DisplayMode = 2;
chirashi 28:4cc6aa3acd92 1355
chirashi 17:95bcbc53d96b 1356 //Serial
chirashi 17:95bcbc53d96b 1357 pc.attach(pc_rx, Serial::RxIrq);
chirashi 17:95bcbc53d96b 1358
chirashi 13:0c542447e6da 1359 //DisplayTimer
chirashi 12:680db9f1f4eb 1360 ChangeTimer.attach(&TimerTick,3);
chirashi 8:9d22c9910917 1361
chirashi 22:ebab951db9f6 1362 //スクロールが有効なら
chirashi 22:ebab951db9f6 1363 //if(Scroll == 1){
chirashi 22:ebab951db9f6 1364 ////スクロール用タイマ
chirashi 22:ebab951db9f6 1365 // ScrollTimer.attach(ScrollTimerTick,0.02);
chirashi 22:ebab951db9f6 1366 //}
chirashi 17:95bcbc53d96b 1367
chirashi 17:95bcbc53d96b 1368
chirashi 13:0c542447e6da 1369 while(1) {
chirashi 29:bc82c25b6b94 1370 //CT++;
chirashi 22:ebab951db9f6 1371 // if (ChangeCount == 0){
chirashi 22:ebab951db9f6 1372 // Paint(LEDBuffer);
chirashi 22:ebab951db9f6 1373 // }else if(ChangeCount == 1){
chirashi 22:ebab951db9f6 1374 // Paint(LEDBuffer2);
chirashi 22:ebab951db9f6 1375 // }else if(ChangeCount == 2){
chirashi 22:ebab951db9f6 1376 // Paint(LEDBuffer3);
chirashi 22:ebab951db9f6 1377 // }
chirashi 22:ebab951db9f6 1378 //表示切替は切り替え時にメインバッファに書き込む
chirashi 22:ebab951db9f6 1379 Paint(LEDMainBuffer);
chirashi 22:ebab951db9f6 1380
chirashi 22:ebab951db9f6 1381 //スクロール(現状不動作)
chirashi 22:ebab951db9f6 1382 //スクロールが有効なら
chirashi 22:ebab951db9f6 1383 if(Scroll == 1){
chirashi 29:bc82c25b6b94 1384 //if(CT>0) {
chirashi 22:ebab951db9f6 1385 //MkPattern(); // Restore original priceless artwork
chirashi 29:bc82c25b6b94 1386 //CT=0; // Start all over.
chirashi 22:ebab951db9f6 1387 OE = HIGH;
chirashi 22:ebab951db9f6 1388 ScrollTimerTick();
chirashi 22:ebab951db9f6 1389 OE = LOW;
chirashi 29:bc82c25b6b94 1390 //}
chirashi 29:bc82c25b6b94 1391 //}else{
chirashi 29:bc82c25b6b94 1392 //if(CT>4160){
chirashi 29:bc82c25b6b94 1393 // CT=0;
chirashi 29:bc82c25b6b94 1394 //}
chirashi 8:9d22c9910917 1395 }
chirashi 4:245f17936b1a 1396
chirashi 22:ebab951db9f6 1397
chirashi 3:6dbbc0130e96 1398
chirashi 4:245f17936b1a 1399 //PaintOFF();
chirashi 6:e6cb4a476422 1400 //wait_us(10);
RRacer 0:1f58ecec51d6 1401 }
chirashi 3:6dbbc0130e96 1402
RRacer 0:1f58ecec51d6 1403 }