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

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Sun Feb 15 02:18:58 2015 +0000
Revision:
30:3ac9aa4faa34
Parent:
29:bc82c25b6b94
Child:
31:d186b04b983e
LEDdata format change

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 24:7232abdf7884 164 int LineNumber = 12;
chirashi 24:7232abdf7884 165 int KindNumber = 22;
chirashi 24:7232abdf7884 166 int ForNumber = 114;
chirashi 17:95bcbc53d96b 167 int NextStaNumber = 1;
chirashi 17:95bcbc53d96b 168 char SerialBuffer[30];
chirashi 30:3ac9aa4faa34 169 //シリアル処理用バッファ
chirashi 30:3ac9aa4faa34 170 char ABuffer[30];
chirashi 30:3ac9aa4faa34 171 bool busyflag = false;
chirashi 17:95bcbc53d96b 172 int count = 0;
chirashi 13:0c542447e6da 173
chirashi 22:ebab951db9f6 174
chirashi 22:ebab951db9f6 175
chirashi 22:ebab951db9f6 176 int ScrollCount = 0;
chirashi 23:6fb1181345a7 177 int ScrollWriteCount = 80;
chirashi 22:ebab951db9f6 178
chirashi 22:ebab951db9f6 179
chirashi 13:0c542447e6da 180 //SDCardFilePath
chirashi 17:95bcbc53d96b 181 char SDFilePath[80]= "/sd/a.txt";
chirashi 13:0c542447e6da 182
chirashi 29:bc82c25b6b94 183 //unsigned char gm[32][6]; // Buffer with 32x6 bytes. Graphics memory if you like.
RRacer 0:1f58ecec51d6 184 unsigned long CT; // Counter for demo code
RRacer 0:1f58ecec51d6 185
chirashi 29:bc82c25b6b94 186
chirashi 29:bc82c25b6b94 187 //StopStationCode:停車駅コード(最大100駅 それ以上の場合MaxStopStationを増やしてください)
chirashi 29:bc82c25b6b94 188 //停車駅コード終端は0にする
chirashi 29:bc82c25b6b94 189 //StationNameLength:駅名の文字数(最大8文字)
chirashi 29:bc82c25b6b94 190 //停車駅名データ:/sd/E233/StationName/(停車駅コード).bin
chirashi 29:bc82c25b6b94 191 //128x32
chirashi 29:bc82c25b6b94 192
chirashi 24:7232abdf7884 193 //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 194 //Keihin-Tohoku Rapid Ofuna
chirashi 24:7232abdf7884 195 //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 196 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 197 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 198
chirashi 23:6fb1181345a7 199
chirashi 13:0c542447e6da 200
chirashi 13:0c542447e6da 201
chirashi 15:12895e9c6965 202 int8_t LEDBuffer [32][128] = {
chirashi 12:680db9f1f4eb 203 {0,0,0,0,0,0,0,0,0,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 204 {0,0,0,0,0,0,0,0,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 205 {0,0,0,0,0,0,0,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 206 {0,0,0,0,0,0,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 207 {0,0,0,0,0,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 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,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 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,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 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,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 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,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 212 {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 213 {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 214 {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 215 {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 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,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 217 {0,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 218 {0,0,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 219 {0,0,0,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 220 {0,0,0,0,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 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,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 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,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 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,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 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,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 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 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,0,0,0,0,0,0,0,0,0,0,0,0,0,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 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,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 231 {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 232 {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 233 {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 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 235
chirashi 9:ab87b0e361aa 236
chirashi 8:9d22c9910917 237 };
chirashi 6:e6cb4a476422 238
chirashi 15:12895e9c6965 239 int8_t LEDBuffer2[32][128] = {
chirashi 14:0f4d44927b20 240 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 241 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 242 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 243 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 244 {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 245 {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 246 {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 247 {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 248 {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 249 {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 250 {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 251 {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 252 {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 253 {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 254 {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 255 {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 256 {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 257 {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 258 {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 259 {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 260 {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 261 {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 262 {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 263 {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 264 {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 265 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 266 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 267 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 268 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 269 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 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,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 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,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 272
chirashi 8:9d22c9910917 273 };
chirashi 8:9d22c9910917 274
chirashi 15:12895e9c6965 275 int8_t LEDBuffer3[32][128] = {
chirashi 12:680db9f1f4eb 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 277 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 278 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 279 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 280 {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 281 {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 282 {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 283 {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 284 {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 285 {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 286 {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 287 {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 288 {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 289 {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 290 {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 291 {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 292 {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 293 {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 294 {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 295 {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 296 {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 297 {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 298 {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 299 {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 300 {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 301 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 302 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 303 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 304 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 305 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 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,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 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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 308
chirashi 8:9d22c9910917 309 };
chirashi 21:b536f614ba71 310
chirashi 21:b536f614ba71 311 int8_t LEDMainBuffer[32][128] = {
chirashi 21:b536f614ba71 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 21:b536f614ba71 313 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 314 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 315 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 316 {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 317 {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 318 {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 319 {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 320 {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 321 {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 322 {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 323 {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 324 {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 325 {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 326 {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 327 {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 328 {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 329 {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 330 {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 331 {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 332 {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 333 {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 334 {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 335 {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 336 {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 337 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 338 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 339 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 340 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 341 {9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,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 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,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 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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
chirashi 21:b536f614ba71 345 };
chirashi 21:b536f614ba71 346
chirashi 22:ebab951db9f6 347 int8_t ScrollBuffer[16][2048] = {
chirashi 22:ebab951db9f6 348
chirashi 22:ebab951db9f6 349 };
chirashi 22:ebab951db9f6 350
chirashi 21:b536f614ba71 351
chirashi 19:26e0fae24da6 352 //01 Red
chirashi 19:26e0fae24da6 353 //02 Green
chirashi 19:26e0fae24da6 354 //03 Blue
chirashi 19:26e0fae24da6 355 //04 Yellow(R,G)
chirashi 19:26e0fae24da6 356 //05(G,B)
chirashi 19:26e0fae24da6 357 //06 purple(R,B)
chirashi 19:26e0fae24da6 358 //08 Blue(Keihin-tohoku Line)
chirashi 9:ab87b0e361aa 359 //10 Yellow(Nambu Local)
chirashi 9:ab87b0e361aa 360 //11 Green (Yokohama Line)
chirashi 12:680db9f1f4eb 361 //12 Orange(Rapid Acty,Urbun)
chirashi 16:d02248f44c4b 362
chirashi 19:26e0fae24da6 363 //13 Green(Saikyo Line)
chirashi 19:26e0fae24da6 364
chirashi 16:d02248f44c4b 365 //16 Green(Utsunomiya Line)
chirashi 19:26e0fae24da6 366 //17 Green(Joban Local Local)
chirashi 24:7232abdf7884 367 //18 Keikyu Logo(Gray
chirashi 28:4cc6aa3acd92 368
chirashi 28:4cc6aa3acd92 369 bool R1Data[8][32]={
chirashi 28:4cc6aa3acd92 370 {0,1,0,0,1,0,1,1,0,1,1,1,1,0,1,1,0,0,1},
chirashi 28:4cc6aa3acd92 371 {0,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,1},
chirashi 28:4cc6aa3acd92 372 {0,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0},
chirashi 28:4cc6aa3acd92 373 {0,1,0,0,1,0,1,1,0,1,0,0,1,0,0,0,0,0,0},
chirashi 28:4cc6aa3acd92 374
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 4:245f17936b1a 380
chirashi 28:4cc6aa3acd92 381 bool G1Data[8][32]={
chirashi 28:4cc6aa3acd92 382 {0,0,1,0,1,1,0,1,1,0,1,1,1,1,0,1,1,1,1},
chirashi 28:4cc6aa3acd92 383 {0,0,1,0,1,1,0,1,1,0,1,1,0,0,0,0,1,1,1},
chirashi 28:4cc6aa3acd92 384 {0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0},
chirashi 28:4cc6aa3acd92 385 {0,0,1,0,1,1,0,1,0,0,0,0,0,0,0,0,0,1,0},
chirashi 28:4cc6aa3acd92 386
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 7:79dfe71beb88 392
chirashi 28:4cc6aa3acd92 393 bool B1Data[8][32]={
chirashi 28:4cc6aa3acd92 394 {0,0,0,1,0,1,1,1,1,1,0,0,0,0,0,1,0,1,1},
chirashi 28:4cc6aa3acd92 395 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,1,1},
chirashi 28:4cc6aa3acd92 396 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
chirashi 28:4cc6aa3acd92 397 {0,0,0,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0},
chirashi 7:79dfe71beb88 398
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 28:4cc6aa3acd92 403 };
chirashi 7:79dfe71beb88 404
chirashi 7:79dfe71beb88 405
RRacer 0:1f58ecec51d6 406
RRacer 0:1f58ecec51d6 407 void Init()
RRacer 0:1f58ecec51d6 408 {
chirashi 30:3ac9aa4faa34 409 //pc.baud(9600);
RRacer 0:1f58ecec51d6 410 // Set up things to a known state
RRacer 0:1f58ecec51d6 411 CLK = LOW;
RRacer 0:1f58ecec51d6 412 LAT = LOW;
RRacer 0:1f58ecec51d6 413 OE = HIGH; //display off
RRacer 0:1f58ecec51d6 414 ABC = 0;
RRacer 0:1f58ecec51d6 415 CT=0;
chirashi 7:79dfe71beb88 416
RRacer 0:1f58ecec51d6 417 }
RRacer 0:1f58ecec51d6 418
chirashi 29:bc82c25b6b94 419 void WriteRow(unsigned char Row, int8_t Buffer[32][128], int8_t index2)
RRacer 0:1f58ecec51d6 420 {
chirashi 28:4cc6aa3acd92 421 ABC = 15-Row;
chirashi 28:4cc6aa3acd92 422 for(int col=0; col<LED_Width; col++) {
chirashi 29:bc82c25b6b94 423 R1 = R1Data[index2][(Buffer [(15-Row)][col])];
chirashi 29:bc82c25b6b94 424 G1 = G1Data[index2][(Buffer [(15-Row)][col])];
chirashi 29:bc82c25b6b94 425 B1 = B1Data[index2][(Buffer [(15-Row)][col])];
chirashi 29:bc82c25b6b94 426 R2 = R1Data[index2][(Buffer [(31-Row)][col])];
chirashi 29:bc82c25b6b94 427 G2 = G1Data[index2][(Buffer [(31-Row)][col])];
chirashi 29:bc82c25b6b94 428 B2 = B1Data[index2][(Buffer [(31-Row)][col])];
chirashi 28:4cc6aa3acd92 429 CLK = HIGH;
chirashi 28:4cc6aa3acd92 430 CLK = LOW;
chirashi 4:245f17936b1a 431 }
chirashi 28:4cc6aa3acd92 432 LAT = HIGH;
chirashi 4:245f17936b1a 433 LAT = LOW;
chirashi 4:245f17936b1a 434 }
chirashi 4:245f17936b1a 435
chirashi 3:6dbbc0130e96 436 void WrRowOFF(unsigned char Row)
chirashi 3:6dbbc0130e96 437 {
chirashi 3:6dbbc0130e96 438 // Write specified row (and row+8) to display. Valid input: 0 to 7.
chirashi 10:4d9cf202a845 439 ABC = 15-Row; // Set row address
chirashi 6:e6cb4a476422 440 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 441 R1 = 0; // Red bit, upper half
chirashi 3:6dbbc0130e96 442 G1 = 0; // Green bit, upper half
chirashi 3:6dbbc0130e96 443 B1 = 0; // Blue bit, upper half
chirashi 3:6dbbc0130e96 444 R2 = 0; // Red bit, lower half
chirashi 3:6dbbc0130e96 445 G2 = 0; // Green bit, lower half
chirashi 3:6dbbc0130e96 446 B2 = 0; // Blue bit, lower half
chirashi 3:6dbbc0130e96 447 CLK = HIGH; // tick (clock bit in)
chirashi 3:6dbbc0130e96 448 CLK = LOW; // tock
chirashi 3:6dbbc0130e96 449 }
chirashi 3:6dbbc0130e96 450 LAT = HIGH; // Latch entire row
chirashi 3:6dbbc0130e96 451 LAT = LOW;
chirashi 3:6dbbc0130e96 452 }
chirashi 3:6dbbc0130e96 453
chirashi 29:bc82c25b6b94 454 //void Pset(unsigned char x,unsigned char y, unsigned char c)
chirashi 29:bc82c25b6b94 455 //{
RRacer 0:1f58ecec51d6 456 // Set pixel (x,y) to color c
RRacer 0:1f58ecec51d6 457 // Manipulates graphics memory, so you won't see any change til you Paint() it.
chirashi 29:bc82c25b6b94 458 // unsigned char ud,l,r0,g0,b0;
chirashi 29:bc82c25b6b94 459 // ud=(y & 8)>>3; // 0 = upper half, 1 = lower half
chirashi 29:bc82c25b6b94 460 // l=y & 7; // Extract row in upper/lower half
chirashi 29:bc82c25b6b94 461 // r0=(c & 4) >>2; // Extract red bit from color
chirashi 29:bc82c25b6b94 462 // g0=(c & 2) >>1; // Extract green bit from color
chirashi 29:bc82c25b6b94 463 // b0=(c & 1); // Extract blue bit from color
RRacer 0:1f58ecec51d6 464 // *******Removes current bit ******* *Adds bit**
chirashi 29:bc82c25b6b94 465 // gm[x][0+3*ud]=(gm[x][0+3*ud] & (255-(1<<(7-l))))+(r0<<(7-l)); // Red byte
chirashi 29:bc82c25b6b94 466 // gm[x][1+3*ud]=(gm[x][1+3*ud] & (255-(1<<(7-l))))+(g0<<(7-l)); // Green byte
chirashi 29:bc82c25b6b94 467 // gm[x][2+3*ud]=(gm[x][2+3*ud] & (255-(1<<(7-l))))+(b0<<(7-l)); // Blue byte
chirashi 29:bc82c25b6b94 468 //}
RRacer 0:1f58ecec51d6 469
chirashi 15:12895e9c6965 470 void Paint(int8_t Buffer2[32][128])
RRacer 0:1f58ecec51d6 471 {
chirashi 28:4cc6aa3acd92 472 for(int index = 0; index < 4; index++){
chirashi 28:4cc6aa3acd92 473 for(int Row=0; Row<LED_Height; Row++) {
chirashi 28:4cc6aa3acd92 474 OE = HIGH; // Disable output
chirashi 28:4cc6aa3acd92 475 WriteRow(Row,Buffer2,index);
chirashi 29:bc82c25b6b94 476 //wait_us(5);
chirashi 28:4cc6aa3acd92 477 OE = LOW; // Enable output
chirashi 28:4cc6aa3acd92 478 wait_us(DisplayWait); // Wasting some time. Use for whatever else. Probably better with a ticker for the display refresh.
chirashi 29:bc82c25b6b94 479 OE = HIGH; // Disable output
chirashi 28:4cc6aa3acd92 480 }
chirashi 5:532937f20397 481 }
chirashi 4:245f17936b1a 482 }
chirashi 4:245f17936b1a 483
RRacer 0:1f58ecec51d6 484
chirashi 3:6dbbc0130e96 485 void PaintOFF()
chirashi 3:6dbbc0130e96 486 {
chirashi 3:6dbbc0130e96 487 // Write graphics memory to display
chirashi 3:6dbbc0130e96 488 for(int Row=0; Row<8; Row++) {
chirashi 3:6dbbc0130e96 489 OE = HIGH; // Disable output
chirashi 3:6dbbc0130e96 490 WrRowOFF(Row);
chirashi 3:6dbbc0130e96 491 OE = LOW; // Enable output
chirashi 4:245f17936b1a 492 wait_us(50); // Wasting some time. Use for whatever else. Probably better with a ticker for the display refresh.
chirashi 3:6dbbc0130e96 493 }
chirashi 3:6dbbc0130e96 494 }
chirashi 3:6dbbc0130e96 495
chirashi 22:ebab951db9f6 496 void CopyBuffer(int8_t ReadBuffer[32][128],int8_t WriteBuffer[32][128]){
chirashi 22:ebab951db9f6 497 for(int y = 0; y < LED_Height * 2; y++){
chirashi 22:ebab951db9f6 498 if(Scroll != 0 && y > 15 ){
chirashi 22:ebab951db9f6 499 for(int x = 0; x < LED_Width - 80; x++){
chirashi 22:ebab951db9f6 500 WriteBuffer[y][x] = ReadBuffer[y][x];
chirashi 22:ebab951db9f6 501 }
chirashi 22:ebab951db9f6 502 }else{
chirashi 22:ebab951db9f6 503 for(int x = 0; x < LED_Width; x++){
chirashi 22:ebab951db9f6 504 WriteBuffer[y][x] = ReadBuffer[y][x];
chirashi 22:ebab951db9f6 505 }
chirashi 22:ebab951db9f6 506 }
chirashi 22:ebab951db9f6 507 }
chirashi 22:ebab951db9f6 508 }
chirashi 22:ebab951db9f6 509
chirashi 23:6fb1181345a7 510 void CopyScrollBuffer(int8_t ReadBuffer[16][2048],int8_t WriteBuffer[32][128],int Startx){
chirashi 23:6fb1181345a7 511 for(int y = 0; y < 16; y++){
chirashi 29:bc82c25b6b94 512 int xCount = 0;
chirashi 23:6fb1181345a7 513 for(int x = 0; x < 80; x++){
chirashi 23:6fb1181345a7 514 if(bitRead(ScrollBuffer[y][(x + Startx) / 8 ], (x + Startx)% 8) != 0){
chirashi 23:6fb1181345a7 515 LEDMainBuffer[y + 16][x + 48] = 4;
chirashi 23:6fb1181345a7 516 }else{
chirashi 23:6fb1181345a7 517 LEDMainBuffer[y + 16][x + 48] = 0;
chirashi 29:bc82c25b6b94 518 }
chirashi 23:6fb1181345a7 519 xCount = xCount + 1;
chirashi 23:6fb1181345a7 520 }
chirashi 23:6fb1181345a7 521 }
chirashi 23:6fb1181345a7 522 }
chirashi 22:ebab951db9f6 523
chirashi 23:6fb1181345a7 524 //1文字256byte
chirashi 23:6fb1181345a7 525 void CopyScrollBuffer2(int8_t ReadBuffer[16][2048],int8_t WriteBuffer[32][128],int Startx){
chirashi 22:ebab951db9f6 526 for(int y = 0; y < 16; y++){
chirashi 22:ebab951db9f6 527 for(int x = 0; x < 80; x++){
chirashi 22:ebab951db9f6 528 LEDMainBuffer[y + 16][x + 48] = ScrollBuffer[y][x + Startx];
chirashi 22:ebab951db9f6 529 }
chirashi 22:ebab951db9f6 530 }
chirashi 22:ebab951db9f6 531 }
chirashi 22:ebab951db9f6 532
chirashi 22:ebab951db9f6 533
chirashi 22:ebab951db9f6 534
chirashi 8:9d22c9910917 535 void TimerTick(){
chirashi 24:7232abdf7884 536 //OE = HIGH;
chirashi 19:26e0fae24da6 537 //DisplayMode = 1 3段階表示ならば
chirashi 19:26e0fae24da6 538 if(DisplayMode == 1){
chirashi 19:26e0fae24da6 539 if (ChangeCount == 0){
chirashi 22:ebab951db9f6 540 CopyBuffer(LEDBuffer,LEDMainBuffer);
chirashi 19:26e0fae24da6 541 ChangeCount = ChangeCount + 1;
chirashi 19:26e0fae24da6 542 }else if(ChangeCount == 1 ){
chirashi 22:ebab951db9f6 543 CopyBuffer(LEDBuffer2,LEDMainBuffer);
chirashi 19:26e0fae24da6 544 ChangeCount = ChangeCount + 1;
chirashi 19:26e0fae24da6 545 //ChangeCount = 0;
chirashi 22:ebab951db9f6 546 }else if(ChangeCount == 2){
chirashi 22:ebab951db9f6 547 CopyBuffer(LEDBuffer3,LEDMainBuffer);
chirashi 19:26e0fae24da6 548 ChangeCount = 0;
chirashi 19:26e0fae24da6 549 }else{
chirashi 19:26e0fae24da6 550 ChangeCount = 0;
chirashi 19:26e0fae24da6 551 }
chirashi 19:26e0fae24da6 552 }
chirashi 19:26e0fae24da6 553 //DisplayMode = 2 2段階表示ならば
chirashi 19:26e0fae24da6 554 //次駅表示なし2段階表示に使用
chirashi 24:7232abdf7884 555
chirashi 24:7232abdf7884 556 if (DisplayMode == 2){
chirashi 19:26e0fae24da6 557
chirashi 19:26e0fae24da6 558 if(ChangeCount == 0 ){
chirashi 22:ebab951db9f6 559 CopyBuffer(LEDBuffer,LEDMainBuffer);
chirashi 19:26e0fae24da6 560 ChangeCount = ChangeCount + 1;
chirashi 19:26e0fae24da6 561 //ChangeCount = 0;
chirashi 22:ebab951db9f6 562 }else if(ChangeCount == 1){
chirashi 22:ebab951db9f6 563 CopyBuffer(LEDBuffer2,LEDMainBuffer);
chirashi 19:26e0fae24da6 564 ChangeCount = 0;
chirashi 19:26e0fae24da6 565 }else{
chirashi 19:26e0fae24da6 566 ChangeCount = 0;
chirashi 19:26e0fae24da6 567 }
chirashi 19:26e0fae24da6 568 }
chirashi 19:26e0fae24da6 569 //DisplayMode = 3 ならば LEDBuffer2を固定表示
chirashi 24:7232abdf7884 570 if (DisplayMode == 3){
chirashi 22:ebab951db9f6 571 CopyBuffer(LEDBuffer2,LEDMainBuffer);
chirashi 19:26e0fae24da6 572 ChangeCount = 1;
chirashi 19:26e0fae24da6 573 }
chirashi 19:26e0fae24da6 574
chirashi 19:26e0fae24da6 575 //2段階表示 次駅表示あり、路線名なしパターンに使用
chirashi 24:7232abdf7884 576 if(DisplayMode == 4){
chirashi 19:26e0fae24da6 577 if(ChangeCount == 1 ){
chirashi 22:ebab951db9f6 578 CopyBuffer(LEDBuffer2,LEDMainBuffer);
chirashi 19:26e0fae24da6 579 ChangeCount = ChangeCount + 1;
chirashi 19:26e0fae24da6 580 }else{
chirashi 22:ebab951db9f6 581 CopyBuffer(LEDBuffer3,LEDMainBuffer);
chirashi 19:26e0fae24da6 582 ChangeCount = 1;
chirashi 19:26e0fae24da6 583 }
chirashi 19:26e0fae24da6 584 }
chirashi 24:7232abdf7884 585
chirashi 24:7232abdf7884 586 //OE = LOW;
chirashi 30:3ac9aa4faa34 587 //クロック確認
chirashi 30:3ac9aa4faa34 588 //pc.printf("CPU SystemCoreClock is %.2f MHz\r\n", (float)SystemCoreClock/1000/1000);
chirashi 13:0c542447e6da 589 }
chirashi 13:0c542447e6da 590
chirashi 22:ebab951db9f6 591 void ScrollTimerTick(){
chirashi 23:6fb1181345a7 592 if(ScrollCount < ScrollWriteCount + 80){
chirashi 22:ebab951db9f6 593 CopyScrollBuffer(ScrollBuffer,LEDMainBuffer,ScrollCount);
chirashi 22:ebab951db9f6 594 ScrollCount = ScrollCount + 1;
chirashi 22:ebab951db9f6 595 }else{
chirashi 22:ebab951db9f6 596 ScrollCount = 0;
chirashi 22:ebab951db9f6 597 }
chirashi 22:ebab951db9f6 598 }
chirashi 22:ebab951db9f6 599
chirashi 22:ebab951db9f6 600
chirashi 22:ebab951db9f6 601
chirashi 14:0f4d44927b20 602 //書込み対象バッファ,書込み開始位置x,書込み開始位置y,読み出し幅x,読み出し高さy
chirashi 15:12895e9c6965 603 void SDBufferWrite(int8_t TargetBuffer[32][128], int Startx, int Starty, int Readx, int Ready){
chirashi 14:0f4d44927b20 604 FILE *fp = fopen(SDFilePath, "r");
chirashi 14:0f4d44927b20 605 if(fp == NULL) {
chirashi 14:0f4d44927b20 606 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 14:0f4d44927b20 607 //error("Could not open file for write\r\n");
chirashi 14:0f4d44927b20 608 }else{
chirashi 14:0f4d44927b20 609 //fprintf(fp, "Hello fun SD Card World!");
chirashi 14:0f4d44927b20 610 pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 14:0f4d44927b20 611
chirashi 14:0f4d44927b20 612 //SDDataReadtest
chirashi 16:d02248f44c4b 613 int8_t Data;
chirashi 30:3ac9aa4faa34 614 //先頭2バイトはヘッダ
chirashi 30:3ac9aa4faa34 615 fseek(fp, 2, SEEK_SET);
chirashi 30:3ac9aa4faa34 616
chirashi 14:0f4d44927b20 617 for(int y = Starty; y < Starty + Ready; y++){
chirashi 14:0f4d44927b20 618 for(int x = Startx; x < Startx + Readx; x++){
chirashi 14:0f4d44927b20 619 Data = getc(fp);
chirashi 14:0f4d44927b20 620 TargetBuffer[y][x] = Data;
chirashi 14:0f4d44927b20 621 }
chirashi 14:0f4d44927b20 622 }
chirashi 14:0f4d44927b20 623 fclose(fp);
chirashi 14:0f4d44927b20 624 }
chirashi 14:0f4d44927b20 625 }
chirashi 13:0c542447e6da 626
chirashi 23:6fb1181345a7 627 //スクロールバッファへの書込み用 読み出し高さは16固定
chirashi 23:6fb1181345a7 628 //書込み対象バッファ,書込み開始位置x,書込み開始位置y,読み出し幅x,読み出し高さy
chirashi 23:6fb1181345a7 629 void SDScrollBufferWrite(int8_t TargetBuffer[16][2048], int Startx, int Starty, int Readx, int Ready){
chirashi 24:7232abdf7884 630 //pc.printf("SDScrollBufferWrite\r\n");
chirashi 23:6fb1181345a7 631 FILE *fp = fopen(SDFilePath, "r");
chirashi 23:6fb1181345a7 632 if(fp == NULL) {
chirashi 23:6fb1181345a7 633 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 23:6fb1181345a7 634 //error("Could not open file for write\r\n");
chirashi 23:6fb1181345a7 635 }else{
chirashi 24:7232abdf7884 636 //pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 23:6fb1181345a7 637
chirashi 23:6fb1181345a7 638 //SDDataReadtest
chirashi 23:6fb1181345a7 639 int8_t Data;
chirashi 30:3ac9aa4faa34 640 //先頭2バイトはヘッダ
chirashi 30:3ac9aa4faa34 641 fseek(fp, 2, SEEK_SET);
chirashi 23:6fb1181345a7 642 for(int y = Starty; y < Starty + Ready; y++){
chirashi 23:6fb1181345a7 643 for(int x = Startx; x < Startx + Readx; x++){
chirashi 23:6fb1181345a7 644 Data = getc(fp);
chirashi 23:6fb1181345a7 645
chirashi 23:6fb1181345a7 646
chirashi 23:6fb1181345a7 647 //TargetBuffer[y][x] = Data;
chirashi 23:6fb1181345a7 648
chirashi 23:6fb1181345a7 649 if(Data != 0){
chirashi 23:6fb1181345a7 650 bitSet(TargetBuffer[y][x / 8],x % 8);
chirashi 23:6fb1181345a7 651 }else{
chirashi 23:6fb1181345a7 652 bitClear(TargetBuffer[y][x / 8],x % 8);
chirashi 23:6fb1181345a7 653 }
chirashi 23:6fb1181345a7 654 }
chirashi 23:6fb1181345a7 655 }
chirashi 23:6fb1181345a7 656 fclose(fp);
chirashi 23:6fb1181345a7 657 }
chirashi 23:6fb1181345a7 658 }
chirashi 23:6fb1181345a7 659
chirashi 18:b8563e3319fd 660 //路線名表示の使用領域チェック
chirashi 18:b8563e3319fd 661 //路線名表示時に次停車駅を表示するかどうかの判断に使用
chirashi 18:b8563e3319fd 662 //路線名が下半分も使用しているなら次停車駅は表示しない
chirashi 18:b8563e3319fd 663 bool BufferBlankCheck(){
chirashi 18:b8563e3319fd 664 bool NotBlankflag = 0;
chirashi 18:b8563e3319fd 665 for(int y = 16; y < 32; y++){
chirashi 18:b8563e3319fd 666 for(int x = 48; x < 128; x++){
chirashi 18:b8563e3319fd 667 if(LEDBuffer[y][x] != 0){
chirashi 18:b8563e3319fd 668 NotBlankflag = 1;
chirashi 18:b8563e3319fd 669 }
chirashi 18:b8563e3319fd 670 if(NotBlankflag == 1){
chirashi 18:b8563e3319fd 671 break;
chirashi 18:b8563e3319fd 672 }
chirashi 18:b8563e3319fd 673 }
chirashi 18:b8563e3319fd 674 if(NotBlankflag == 1){
chirashi 18:b8563e3319fd 675 break;
chirashi 18:b8563e3319fd 676 }
chirashi 18:b8563e3319fd 677 }
chirashi 18:b8563e3319fd 678 if(NotBlankflag == 0){
chirashi 18:b8563e3319fd 679 pc.printf("Blank\r\n");
chirashi 18:b8563e3319fd 680 return 0;
chirashi 18:b8563e3319fd 681 }else{
chirashi 18:b8563e3319fd 682 pc.printf("Not Blank\r\n");
chirashi 18:b8563e3319fd 683 return 1;
chirashi 18:b8563e3319fd 684 }
chirashi 18:b8563e3319fd 685 }
chirashi 18:b8563e3319fd 686
chirashi 18:b8563e3319fd 687
chirashi 18:b8563e3319fd 688
chirashi 18:b8563e3319fd 689 void SDFileRead(){
chirashi 19:26e0fae24da6 690
chirashi 19:26e0fae24da6 691 //3段階表示 LEDBuffer [種別]路線名(・次駅)
chirashi 19:26e0fae24da6 692 // LEDBuffer2 [種別]行先・次駅
chirashi 19:26e0fae24da6 693 // LEDBuffer3 [種別(英)]行先(英)・次駅(英)
chirashi 19:26e0fae24da6 694
chirashi 18:b8563e3319fd 695 //SDCard
chirashi 18:b8563e3319fd 696 //種別
chirashi 18:b8563e3319fd 697 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 18:b8563e3319fd 698 SDBufferWrite(LEDBuffer,0,0,48,32);
chirashi 18:b8563e3319fd 699 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 18:b8563e3319fd 700 SDBufferWrite(LEDBuffer2,0,0,48,32);
chirashi 18:b8563e3319fd 701 //種別(英語)
chirashi 18:b8563e3319fd 702 sprintf(SDFilePath,"/sd/E233/KindE/%d.bin",KindNumber);
chirashi 19:26e0fae24da6 703 SDBufferWrite(LEDBuffer3,0,0,48,32);
chirashi 19:26e0fae24da6 704
chirashi 18:b8563e3319fd 705 //路線名
chirashi 18:b8563e3319fd 706 sprintf(SDFilePath,"/sd/E233/Line/%d.bin",LineNumber);
chirashi 18:b8563e3319fd 707 SDBufferWrite(LEDBuffer,48,0,80,32);
chirashi 18:b8563e3319fd 708 //行先
chirashi 18:b8563e3319fd 709 sprintf(SDFilePath,"/sd/E233/For/%d.bin",ForNumber);
chirashi 18:b8563e3319fd 710 SDBufferWrite(LEDBuffer2,48,0,80,16);
chirashi 18:b8563e3319fd 711 //行先(英語)
chirashi 18:b8563e3319fd 712 sprintf(SDFilePath,"/sd/E233/ForE/%d.bin",ForNumber);
chirashi 18:b8563e3319fd 713 SDBufferWrite(LEDBuffer3,48,0,80,16);
chirashi 18:b8563e3319fd 714
chirashi 18:b8563e3319fd 715 //次停車駅(路線名表示)
chirashi 18:b8563e3319fd 716 //路線名表示の次停車駅は路線名表示が上半分に収まるときのみ表示
chirashi 18:b8563e3319fd 717 if(BufferBlankCheck() == 0){
chirashi 18:b8563e3319fd 718 sprintf(SDFilePath,"/sd/E233/NextStation/%d.bin",NextStaNumber);
chirashi 18:b8563e3319fd 719 SDBufferWrite(LEDBuffer,48,16,80,16);
chirashi 18:b8563e3319fd 720 }
chirashi 18:b8563e3319fd 721 //次停車駅
chirashi 18:b8563e3319fd 722 sprintf(SDFilePath,"/sd/E233/NextStation/%d.bin",NextStaNumber);
chirashi 19:26e0fae24da6 723 SDBufferWrite(LEDBuffer2,48,16,80,16);
chirashi 18:b8563e3319fd 724 //次停車駅(英語)
chirashi 18:b8563e3319fd 725 sprintf(SDFilePath,"/sd/E233/NextStationE/%d.bin",NextStaNumber);
chirashi 18:b8563e3319fd 726 SDBufferWrite(LEDBuffer3,48,16,80,16);
chirashi 22:ebab951db9f6 727
chirashi 22:ebab951db9f6 728
chirashi 19:26e0fae24da6 729
chirashi 19:26e0fae24da6 730 //路線コードが0なら2段階表示に変更
chirashi 19:26e0fae24da6 731 if(LineNumber == 0){
chirashi 19:26e0fae24da6 732 DisplayMode = 4;
chirashi 19:26e0fae24da6 733 }else{
chirashi 19:26e0fae24da6 734 DisplayMode = 1;
chirashi 19:26e0fae24da6 735 }
chirashi 24:7232abdf7884 736
chirashi 24:7232abdf7884 737 //2段階(次駅なし)
chirashi 19:26e0fae24da6 738 //次駅コードが0なら次駅なしの2段階表示に変更
chirashi 19:26e0fae24da6 739 // 2段階表示 LEDBuffer [種別]路線名
chirashi 19:26e0fae24da6 740 // LEDBuffer2 [種別]行先(次駅表示なし)
chirashi 19:26e0fae24da6 741 //路線名がない場合(E233-0など)は固定表示
chirashi 19:26e0fae24da6 742
chirashi 19:26e0fae24da6 743 if(NextStaNumber == 0){
chirashi 19:26e0fae24da6 744 //種別
chirashi 19:26e0fae24da6 745 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 19:26e0fae24da6 746 SDBufferWrite(LEDBuffer,0,0,48,32);
chirashi 19:26e0fae24da6 747 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 19:26e0fae24da6 748 SDBufferWrite(LEDBuffer2,0,0,48,32);
chirashi 19:26e0fae24da6 749
chirashi 19:26e0fae24da6 750 //路線名
chirashi 19:26e0fae24da6 751 sprintf(SDFilePath,"/sd/E233/Line2/%d.bin",LineNumber);
chirashi 19:26e0fae24da6 752 SDBufferWrite(LEDBuffer,48,0,80,32);
chirashi 19:26e0fae24da6 753 //行先
chirashi 19:26e0fae24da6 754 sprintf(SDFilePath,"/sd/E233/For2/%d.bin",ForNumber);
chirashi 19:26e0fae24da6 755 SDBufferWrite(LEDBuffer2,48,0,80,32);
chirashi 19:26e0fae24da6 756
chirashi 19:26e0fae24da6 757 //路線コードが0なら行先で固定表示
chirashi 19:26e0fae24da6 758 if(LineNumber == 0){
chirashi 19:26e0fae24da6 759 DisplayMode = 3;
chirashi 19:26e0fae24da6 760 }else{
chirashi 19:26e0fae24da6 761 DisplayMode = 2;
chirashi 19:26e0fae24da6 762 }
chirashi 19:26e0fae24da6 763 }
chirashi 19:26e0fae24da6 764
chirashi 24:7232abdf7884 765
chirashi 24:7232abdf7884 766 //全面種別固定表示
chirashi 24:7232abdf7884 767 //路線名、行先、次駅がすべて0なら種別を全面に固定表示
chirashi 24:7232abdf7884 768 if(LineNumber == 0 && ForNumber == 0 && NextStaNumber == 0){
chirashi 24:7232abdf7884 769
chirashi 24:7232abdf7884 770 //種別
chirashi 24:7232abdf7884 771 sprintf(SDFilePath,"/sd/E233/Kind/%d.bin",KindNumber);
chirashi 24:7232abdf7884 772 SDBufferWrite(LEDBuffer2,0,0,48,32);
chirashi 24:7232abdf7884 773 sprintf(SDFilePath,"/sd/E233/Kind2/%d.bin",KindNumber);
chirashi 24:7232abdf7884 774 SDBufferWrite(LEDBuffer2,0,0,128,32);
chirashi 24:7232abdf7884 775
chirashi 24:7232abdf7884 776 //固定表示に変更
chirashi 24:7232abdf7884 777 DisplayMode = 3;
chirashi 24:7232abdf7884 778 }
chirashi 24:7232abdf7884 779
chirashi 24:7232abdf7884 780
chirashi 24:7232abdf7884 781
chirashi 19:26e0fae24da6 782 //WriteMode = 3 固定表示 LEDBuffer2 行先(次駅表示なし 32x128)
chirashi 19:26e0fae24da6 783 //else if(WriteMode == 3){
chirashi 19:26e0fae24da6 784 if(WriteMode == 3){
chirashi 19:26e0fae24da6 785 //データ作ってないからとりあえず80x32の行先データを表示
chirashi 19:26e0fae24da6 786
chirashi 19:26e0fae24da6 787 sprintf(SDFilePath,"/sd/E233/For2/%d.bin",ForNumber);
chirashi 19:26e0fae24da6 788 SDBufferWrite(LEDBuffer2,48,0,80,32);
chirashi 19:26e0fae24da6 789
chirashi 19:26e0fae24da6 790 DisplayMode = 3;
chirashi 19:26e0fae24da6 791
chirashi 19:26e0fae24da6 792 }
chirashi 18:b8563e3319fd 793
chirashi 20:4f9719182866 794 //Debug
chirashi 20:4f9719182866 795 if(Debug == 1){
chirashi 20:4f9719182866 796 //DataSerialOut
chirashi 20:4f9719182866 797 for(int y = 0; y < 32; y++){
chirashi 20:4f9719182866 798 for(int x = 0; x <128; x++){
chirashi 20:4f9719182866 799 if(LEDBuffer[y][x]== 0){
chirashi 20:4f9719182866 800 //pc.printf("0,");
chirashi 20:4f9719182866 801 pc.printf(" ");
chirashi 20:4f9719182866 802 }else{
chirashi 20:4f9719182866 803 //pc.printf("#");
chirashi 20:4f9719182866 804 pc.printf("%.02d",LEDBuffer[y][x]);
chirashi 20:4f9719182866 805 }
chirashi 20:4f9719182866 806 }
chirashi 20:4f9719182866 807 pc.printf("\r\n");
chirashi 20:4f9719182866 808 }
chirashi 20:4f9719182866 809 }
chirashi 18:b8563e3319fd 810
chirashi 18:b8563e3319fd 811 }
chirashi 18:b8563e3319fd 812
chirashi 18:b8563e3319fd 813
chirashi 18:b8563e3319fd 814
chirashi 17:95bcbc53d96b 815 void pc_rx(){
chirashi 17:95bcbc53d96b 816 //pc.putc(pc.getc());
chirashi 17:95bcbc53d96b 817
chirashi 22:ebab951db9f6 818 OE = HIGH;
chirashi 17:95bcbc53d96b 819
chirashi 17:95bcbc53d96b 820 if (pc.readable() == 1) { // 受信したデータが存在する
chirashi 30:3ac9aa4faa34 821 if (busyflag == false){
chirashi 30:3ac9aa4faa34 822 SerialBuffer[count] = pc.getc(); // 受信データを読み込む
chirashi 30:3ac9aa4faa34 823
chirashi 30:3ac9aa4faa34 824 }else{
chirashi 30:3ac9aa4faa34 825 pc.printf("busy\r\n");
chirashi 30:3ac9aa4faa34 826 }
chirashi 30:3ac9aa4faa34 827
chirashi 30:3ac9aa4faa34 828 if (count > 29 || SerialBuffer[count] == '$') { // 文字数が既定の個数を超えた場合、又は終了文字を受信した場合
chirashi 30:3ac9aa4faa34 829 busyflag = true;
chirashi 30:3ac9aa4faa34 830
chirashi 30:3ac9aa4faa34 831 //SerialBuffer[count] = '\0'; // 末尾に終端文字を入れる
chirashi 30:3ac9aa4faa34 832
chirashi 30:3ac9aa4faa34 833 for(int a = 0; a < count; a++){
chirashi 30:3ac9aa4faa34 834
chirashi 30:3ac9aa4faa34 835 ABuffer[a] = SerialBuffer[a];
chirashi 30:3ac9aa4faa34 836 }
chirashi 30:3ac9aa4faa34 837
chirashi 30:3ac9aa4faa34 838
chirashi 17:95bcbc53d96b 839 count = 0;
chirashi 24:7232abdf7884 840
chirashi 24:7232abdf7884 841 //路線名 L
chirashi 30:3ac9aa4faa34 842 if(ABuffer[0] == 'L'){
chirashi 30:3ac9aa4faa34 843 unsigned char Sertemp1 = ABuffer[1];
chirashi 30:3ac9aa4faa34 844 unsigned char Sertemp2 = ABuffer[2];
chirashi 30:3ac9aa4faa34 845 unsigned char Sertemp3 = ABuffer[3];
chirashi 17:95bcbc53d96b 846 int n1 = 0 ;
chirashi 17:95bcbc53d96b 847 int n2 = 0 ;
chirashi 17:95bcbc53d96b 848 int n3 = 0 ;
chirashi 17:95bcbc53d96b 849 int n = 0;
chirashi 17:95bcbc53d96b 850
chirashi 17:95bcbc53d96b 851
chirashi 17:95bcbc53d96b 852 if ( Sertemp1 < '0' || Sertemp1 > '9' ) {
chirashi 17:95bcbc53d96b 853 // error
chirashi 17:95bcbc53d96b 854 } else {
chirashi 17:95bcbc53d96b 855 n1 = (int)(Sertemp1 - '0') ;
chirashi 18:b8563e3319fd 856 //pc.printf("%d,",n1);
chirashi 18:b8563e3319fd 857 }
chirashi 18:b8563e3319fd 858 if ( Sertemp2 < '0' || Sertemp2 > '9' ) {
chirashi 18:b8563e3319fd 859 // error
chirashi 18:b8563e3319fd 860 } else {
chirashi 18:b8563e3319fd 861 n2 = (int)(Sertemp2 - '0') ;
chirashi 18:b8563e3319fd 862 //pc.printf("%d,",n2);
chirashi 18:b8563e3319fd 863 }
chirashi 18:b8563e3319fd 864 if ( Sertemp3 < '0' || Sertemp3 > '9' ) {
chirashi 18:b8563e3319fd 865 // error
chirashi 18:b8563e3319fd 866 } else {
chirashi 18:b8563e3319fd 867 n3 = (int)(Sertemp3 - '0') ;
chirashi 18:b8563e3319fd 868 //pc.printf("%d\r\n",n3);
chirashi 18:b8563e3319fd 869 }
chirashi 18:b8563e3319fd 870 n = (n1 * 100) + (n2 * 10) + n3;
chirashi 18:b8563e3319fd 871 LineNumber = n;
chirashi 19:26e0fae24da6 872 pc.printf("Line:%d\r\n",n);
chirashi 18:b8563e3319fd 873 }
chirashi 18:b8563e3319fd 874
chirashi 24:7232abdf7884 875 //種別 K
chirashi 30:3ac9aa4faa34 876 if(ABuffer[0] == 'K'){
chirashi 30:3ac9aa4faa34 877 unsigned char Sertemp1 = ABuffer[1];
chirashi 30:3ac9aa4faa34 878 unsigned char Sertemp2 = ABuffer[2];
chirashi 30:3ac9aa4faa34 879 unsigned char Sertemp3 = ABuffer[3];
chirashi 18:b8563e3319fd 880 int n1 = 0 ;
chirashi 18:b8563e3319fd 881 int n2 = 0 ;
chirashi 18:b8563e3319fd 882 int n3 = 0 ;
chirashi 18:b8563e3319fd 883 int n = 0;
chirashi 18:b8563e3319fd 884
chirashi 18:b8563e3319fd 885
chirashi 18:b8563e3319fd 886 if ( Sertemp1 < '0' || Sertemp1 > '9' ) {
chirashi 18:b8563e3319fd 887 // error
chirashi 18:b8563e3319fd 888 } else {
chirashi 18:b8563e3319fd 889 n1 = (int)(Sertemp1 - '0') ;
chirashi 18:b8563e3319fd 890 //pc.printf("%d,",n1);
chirashi 17:95bcbc53d96b 891 }
chirashi 17:95bcbc53d96b 892 if ( Sertemp2 < '0' || Sertemp2 > '9' ) {
chirashi 17:95bcbc53d96b 893 // error
chirashi 17:95bcbc53d96b 894 } else {
chirashi 17:95bcbc53d96b 895 n2 = (int)(Sertemp2 - '0') ;
chirashi 18:b8563e3319fd 896 //pc.printf("%d,",n2);
chirashi 17:95bcbc53d96b 897 }
chirashi 17:95bcbc53d96b 898 if ( Sertemp3 < '0' || Sertemp3 > '9' ) {
chirashi 17:95bcbc53d96b 899 // error
chirashi 17:95bcbc53d96b 900 } else {
chirashi 17:95bcbc53d96b 901 n3 = (int)(Sertemp3 - '0') ;
chirashi 18:b8563e3319fd 902 //pc.printf("%d,",n3);
chirashi 17:95bcbc53d96b 903 }
chirashi 17:95bcbc53d96b 904 n = (n1 * 100) + (n2 * 10) + n3;
chirashi 18:b8563e3319fd 905 KindNumber = n;
chirashi 18:b8563e3319fd 906 pc.printf("Kind:%d\r\n",n);
chirashi 18:b8563e3319fd 907 }
chirashi 18:b8563e3319fd 908
chirashi 24:7232abdf7884 909 //行先 F
chirashi 30:3ac9aa4faa34 910 if(ABuffer[0] == 'F'){
chirashi 30:3ac9aa4faa34 911 unsigned char Sertemp1 = ABuffer[1];
chirashi 30:3ac9aa4faa34 912 unsigned char Sertemp2 = ABuffer[2];
chirashi 30:3ac9aa4faa34 913 unsigned char Sertemp3 = ABuffer[3];
chirashi 18:b8563e3319fd 914 int n1 = 0 ;
chirashi 18:b8563e3319fd 915 int n2 = 0 ;
chirashi 18:b8563e3319fd 916 int n3 = 0 ;
chirashi 18:b8563e3319fd 917 int n = 0;
chirashi 17:95bcbc53d96b 918
chirashi 18:b8563e3319fd 919
chirashi 18:b8563e3319fd 920 if ( Sertemp1 < '0' || Sertemp1 > '9' ) {
chirashi 18:b8563e3319fd 921 // error
chirashi 18:b8563e3319fd 922 } else {
chirashi 18:b8563e3319fd 923 n1 = (int)(Sertemp1 - '0') ;
chirashi 18:b8563e3319fd 924 //pc.printf("%d,",n1);
chirashi 18:b8563e3319fd 925 }
chirashi 18:b8563e3319fd 926 if ( Sertemp2 < '0' || Sertemp2 > '9' ) {
chirashi 18:b8563e3319fd 927 // error
chirashi 18:b8563e3319fd 928 } else {
chirashi 18:b8563e3319fd 929 n2 = (int)(Sertemp2 - '0') ;
chirashi 18:b8563e3319fd 930 //pc.printf("%d,",n2);
chirashi 18:b8563e3319fd 931 }
chirashi 18:b8563e3319fd 932 if ( Sertemp3 < '0' || Sertemp3 > '9' ) {
chirashi 18:b8563e3319fd 933 // error
chirashi 18:b8563e3319fd 934 } else {
chirashi 18:b8563e3319fd 935 n3 = (int)(Sertemp3 - '0') ;
chirashi 18:b8563e3319fd 936 //pc.printf("%d,",n3);
chirashi 18:b8563e3319fd 937 }
chirashi 18:b8563e3319fd 938 n = (n1 * 100) + (n2 * 10) + n3;
chirashi 18:b8563e3319fd 939 ForNumber = n;
chirashi 18:b8563e3319fd 940 pc.printf("For:%d\r\n",n);
chirashi 18:b8563e3319fd 941 }
chirashi 18:b8563e3319fd 942
chirashi 24:7232abdf7884 943 //次停車駅 K
chirashi 30:3ac9aa4faa34 944 if(ABuffer[0] == 'N'){
chirashi 30:3ac9aa4faa34 945 unsigned char Sertemp1 = ABuffer[1];
chirashi 30:3ac9aa4faa34 946 unsigned char Sertemp2 = ABuffer[2];
chirashi 30:3ac9aa4faa34 947 unsigned char Sertemp3 = ABuffer[3];
chirashi 19:26e0fae24da6 948 int n1 = 0 ;
chirashi 19:26e0fae24da6 949 int n2 = 0 ;
chirashi 19:26e0fae24da6 950 int n3 = 0 ;
chirashi 19:26e0fae24da6 951 int n = 0;
chirashi 19:26e0fae24da6 952
chirashi 19:26e0fae24da6 953
chirashi 19:26e0fae24da6 954 if ( Sertemp1 < '0' || Sertemp1 > '9' ) {
chirashi 19:26e0fae24da6 955 // error
chirashi 19:26e0fae24da6 956 } else {
chirashi 19:26e0fae24da6 957 n1 = (int)(Sertemp1 - '0') ;
chirashi 19:26e0fae24da6 958 //pc.printf("%d,",n1);
chirashi 19:26e0fae24da6 959 }
chirashi 19:26e0fae24da6 960 if ( Sertemp2 < '0' || Sertemp2 > '9' ) {
chirashi 19:26e0fae24da6 961 // error
chirashi 19:26e0fae24da6 962 } else {
chirashi 19:26e0fae24da6 963 n2 = (int)(Sertemp2 - '0') ;
chirashi 19:26e0fae24da6 964 //pc.printf("%d,",n2);
chirashi 19:26e0fae24da6 965 }
chirashi 19:26e0fae24da6 966 if ( Sertemp3 < '0' || Sertemp3 > '9' ) {
chirashi 19:26e0fae24da6 967 // error
chirashi 19:26e0fae24da6 968 } else {
chirashi 19:26e0fae24da6 969 n3 = (int)(Sertemp3 - '0') ;
chirashi 19:26e0fae24da6 970 //pc.printf("%d,",n3);
chirashi 19:26e0fae24da6 971 }
chirashi 19:26e0fae24da6 972 n = (n1 * 100) + (n2 * 10) + n3;
chirashi 19:26e0fae24da6 973 NextStaNumber = n;
chirashi 19:26e0fae24da6 974 pc.printf("NextStation:%d\r\n",n);
chirashi 19:26e0fae24da6 975 }
chirashi 18:b8563e3319fd 976
chirashi 24:7232abdf7884 977 //スクロール有効/無効 S
chirashi 30:3ac9aa4faa34 978 if(ABuffer[0] == 'S'){
chirashi 30:3ac9aa4faa34 979 unsigned char Sertemp1 = ABuffer[1];
chirashi 24:7232abdf7884 980 int n1 = 0 ;
chirashi 24:7232abdf7884 981 int n = 0;
chirashi 24:7232abdf7884 982
chirashi 24:7232abdf7884 983 if ( Sertemp1 < '0' || Sertemp1 > '9' ) {
chirashi 24:7232abdf7884 984 // error
chirashi 24:7232abdf7884 985 } else {
chirashi 24:7232abdf7884 986 n1 = (int)(Sertemp1 - '0') ;
chirashi 24:7232abdf7884 987 //pc.printf("%d,",n1);
chirashi 24:7232abdf7884 988 }
chirashi 24:7232abdf7884 989
chirashi 24:7232abdf7884 990 n = n1;
chirashi 24:7232abdf7884 991 Scroll = n;
chirashi 24:7232abdf7884 992 pc.printf("Scroll:%d\r\n",n);
chirashi 24:7232abdf7884 993 }
chirashi 24:7232abdf7884 994
chirashi 24:7232abdf7884 995 //起動 Set
chirashi 30:3ac9aa4faa34 996 if(ABuffer[0] == 'S' && ABuffer[1] == 'e' && ABuffer[2] == 't'){
chirashi 18:b8563e3319fd 997 pc.printf("Set\r\n");
chirashi 18:b8563e3319fd 998 SDFileRead();
chirashi 17:95bcbc53d96b 999 }
chirashi 30:3ac9aa4faa34 1000 busyflag = false;
chirashi 17:95bcbc53d96b 1001 }else{
chirashi 17:95bcbc53d96b 1002 count++;
chirashi 17:95bcbc53d96b 1003 }
chirashi 17:95bcbc53d96b 1004 }
chirashi 22:ebab951db9f6 1005
chirashi 22:ebab951db9f6 1006 OE = LOW;
chirashi 17:95bcbc53d96b 1007 }
chirashi 17:95bcbc53d96b 1008
chirashi 17:95bcbc53d96b 1009 int main(){
chirashi 13:0c542447e6da 1010 Init(); // Set things up
chirashi 13:0c542447e6da 1011 //Serial
chirashi 30:3ac9aa4faa34 1012
chirashi 13:0c542447e6da 1013 pc.printf("Power ON\r\n");
chirashi 13:0c542447e6da 1014
chirashi 17:95bcbc53d96b 1015
chirashi 13:0c542447e6da 1016 //SumSW
chirashi 29:bc82c25b6b94 1017 //int testData[16] = {0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0};
chirashi 29:bc82c25b6b94 1018 //SI = LOW;
chirashi 29:bc82c25b6b94 1019 //for(int a = 0; a < 16; a++){
chirashi 29:bc82c25b6b94 1020 // if(testData[a] == 1){
chirashi 29:bc82c25b6b94 1021 // SI = HIGH;
chirashi 29:bc82c25b6b94 1022 // pc.printf("1,");
chirashi 29:bc82c25b6b94 1023 // }else{
chirashi 29:bc82c25b6b94 1024 // SI = LOW;
chirashi 29:bc82c25b6b94 1025 // pc.printf("0,");
chirashi 29:bc82c25b6b94 1026 // }
chirashi 29:bc82c25b6b94 1027 // SCK = HIGH;
chirashi 29:bc82c25b6b94 1028 // wait_us(15);
chirashi 29:bc82c25b6b94 1029 // SCK = LOW;
chirashi 29:bc82c25b6b94 1030 // wait_us(15);
chirashi 29:bc82c25b6b94 1031 //}
chirashi 13:0c542447e6da 1032
chirashi 29:bc82c25b6b94 1033 //RCK = HIGH;
chirashi 29:bc82c25b6b94 1034 //wait_us(15);
chirashi 29:bc82c25b6b94 1035 //RCK = LOW;
chirashi 29:bc82c25b6b94 1036 //pc.printf("\r\n");
chirashi 8:9d22c9910917 1037
chirashi 29:bc82c25b6b94 1038 //int SumSWNum = 0;
chirashi 29:bc82c25b6b94 1039 //if(SumSW1 == 1 ){
chirashi 29:bc82c25b6b94 1040 // SumSWNum = SumSWNum + 1;
chirashi 29:bc82c25b6b94 1041 //}
chirashi 29:bc82c25b6b94 1042 //if(SumSW2 == 1){
chirashi 29:bc82c25b6b94 1043 // SumSWNum = SumSWNum + 2;
chirashi 29:bc82c25b6b94 1044 //}
chirashi 29:bc82c25b6b94 1045 //if(SumSW4 == 1){
chirashi 29:bc82c25b6b94 1046 // SumSWNum = SumSWNum + 4;
chirashi 29:bc82c25b6b94 1047 //}
chirashi 29:bc82c25b6b94 1048 //if(SumSW8 == 1){
chirashi 29:bc82c25b6b94 1049 // SumSWNum = SumSWNum + 8;
chirashi 29:bc82c25b6b94 1050 //}
chirashi 29:bc82c25b6b94 1051 //pc.printf("SumSW:%d\r\n",SumSWNum);
chirashi 8:9d22c9910917 1052
chirashi 18:b8563e3319fd 1053
chirashi 29:bc82c25b6b94 1054 //SDカードから表示データを読み込み
chirashi 18:b8563e3319fd 1055 SDFileRead();
chirashi 25:8b1da0f21d32 1056
chirashi 29:bc82c25b6b94 1057 //起動時にスクロールデータを読み込み
chirashi 25:8b1da0f21d32 1058 if(ScrollEnable == 1){
chirashi 30:3ac9aa4faa34 1059
chirashi 30:3ac9aa4faa34 1060 //test
chirashi 30:3ac9aa4faa34 1061 //Initialize StopStationCode
chirashi 30:3ac9aa4faa34 1062 for (int x = 0; x < MaxStopStation; x++){
chirashi 30:3ac9aa4faa34 1063 StopStationCode[x]= 0;
chirashi 30:3ac9aa4faa34 1064 }
chirashi 30:3ac9aa4faa34 1065
chirashi 30:3ac9aa4faa34 1066 //SDRead StopStationCode
chirashi 30:3ac9aa4faa34 1067 for(int i = 0; i < MaxStopStation; i++){
chirashi 30:3ac9aa4faa34 1068
chirashi 30:3ac9aa4faa34 1069 //停車駅コード取得
chirashi 30:3ac9aa4faa34 1070 int test = 0;
chirashi 30:3ac9aa4faa34 1071 int test2 = 0;
chirashi 30:3ac9aa4faa34 1072 sprintf(SDFilePath,"/sd/E233/StopStationList/%d.bin",1);
chirashi 30:3ac9aa4faa34 1073 FILE *fp = fopen(SDFilePath, "r");
chirashi 30:3ac9aa4faa34 1074 if(fp == NULL) {
chirashi 30:3ac9aa4faa34 1075 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 30:3ac9aa4faa34 1076 break;
chirashi 30:3ac9aa4faa34 1077
chirashi 30:3ac9aa4faa34 1078 }else{
chirashi 30:3ac9aa4faa34 1079 //pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 30:3ac9aa4faa34 1080 fseek(fp, i*2, SEEK_SET);
chirashi 30:3ac9aa4faa34 1081 test = getc(fp);
chirashi 30:3ac9aa4faa34 1082 test = test << 8;
chirashi 30:3ac9aa4faa34 1083
chirashi 30:3ac9aa4faa34 1084 fseek(fp, i*2 + 1, SEEK_SET);
chirashi 30:3ac9aa4faa34 1085 test2 = getc(fp);
chirashi 30:3ac9aa4faa34 1086 test = test ^ test2;
chirashi 30:3ac9aa4faa34 1087
chirashi 30:3ac9aa4faa34 1088 StopStationCode[i] = test;
chirashi 30:3ac9aa4faa34 1089 pc.printf("StopStationCode[%d]:%d\r\n",i,StopStationCode[i]);
chirashi 30:3ac9aa4faa34 1090
chirashi 30:3ac9aa4faa34 1091 if(StopStationCode[i] == 0){
chirashi 30:3ac9aa4faa34 1092 break;
chirashi 30:3ac9aa4faa34 1093 }
chirashi 30:3ac9aa4faa34 1094 fclose(fp);
chirashi 30:3ac9aa4faa34 1095 }
chirashi 30:3ac9aa4faa34 1096 }
chirashi 30:3ac9aa4faa34 1097
chirashi 30:3ac9aa4faa34 1098 //test end
chirashi 30:3ac9aa4faa34 1099
chirashi 30:3ac9aa4faa34 1100
chirashi 30:3ac9aa4faa34 1101
chirashi 30:3ac9aa4faa34 1102
chirashi 30:3ac9aa4faa34 1103
chirashi 30:3ac9aa4faa34 1104
chirashi 30:3ac9aa4faa34 1105
chirashi 30:3ac9aa4faa34 1106
chirashi 30:3ac9aa4faa34 1107
chirashi 30:3ac9aa4faa34 1108
chirashi 30:3ac9aa4faa34 1109
chirashi 30:3ac9aa4faa34 1110
chirashi 30:3ac9aa4faa34 1111
chirashi 23:6fb1181345a7 1112 //ScrollDebug
chirashi 23:6fb1181345a7 1113 ScrollWriteCount = 80;
chirashi 23:6fb1181345a7 1114
chirashi 23:6fb1181345a7 1115 //この電車の停車駅は、
chirashi 23:6fb1181345a7 1116 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",1);
chirashi 23:6fb1181345a7 1117 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 23:6fb1181345a7 1118 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 23:6fb1181345a7 1119 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",2);
chirashi 23:6fb1181345a7 1120 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 23:6fb1181345a7 1121 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 24:7232abdf7884 1122
chirashi 24:7232abdf7884 1123 for(int i = 0; i < MaxStopStation; i++){
chirashi 23:6fb1181345a7 1124 if(StopStationCode[i] == 0){
chirashi 23:6fb1181345a7 1125 break;
chirashi 23:6fb1181345a7 1126 }
chirashi 23:6fb1181345a7 1127 //駅名
chirashi 23:6fb1181345a7 1128 sprintf(SDFilePath,"/sd/E233/StationName/%d.bin",StopStationCode[i]);
chirashi 24:7232abdf7884 1129 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,128,16);
chirashi 24:7232abdf7884 1130
chirashi 24:7232abdf7884 1131 //駅名文字数取得
chirashi 24:7232abdf7884 1132 int test = 0;
chirashi 24:7232abdf7884 1133 sprintf(SDFilePath,"/sd/E233/StationNameLength.bin");
chirashi 24:7232abdf7884 1134 FILE *fp = fopen(SDFilePath, "r");
chirashi 24:7232abdf7884 1135 if(fp == NULL) {
chirashi 24:7232abdf7884 1136 pc.printf("SDFileOpen Error %s\r\n",SDFilePath);
chirashi 24:7232abdf7884 1137 }else{
chirashi 24:7232abdf7884 1138 //pc.printf("SDFileOpen Success %s\r\n",SDFilePath);
chirashi 24:7232abdf7884 1139 fseek(fp, StopStationCode[i], SEEK_SET);
chirashi 24:7232abdf7884 1140 test = getc(fp);
chirashi 24:7232abdf7884 1141 //pc.printf("StationNameLength:%d\r\n",test);
chirashi 24:7232abdf7884 1142 fclose(fp);
chirashi 24:7232abdf7884 1143 }
chirashi 24:7232abdf7884 1144
chirashi 24:7232abdf7884 1145 ScrollWriteCount = ScrollWriteCount + (test * 16);
chirashi 23:6fb1181345a7 1146 sprintf(SDFilePath,"/sd/E233/StopStation/0x8132.bin");
chirashi 23:6fb1181345a7 1147 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,16,16);
chirashi 23:6fb1181345a7 1148 ScrollWriteCount = ScrollWriteCount + 16;
chirashi 23:6fb1181345a7 1149 }
chirashi 23:6fb1181345a7 1150 ScrollWriteCount = ScrollWriteCount - 16;
chirashi 23:6fb1181345a7 1151 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",3);
chirashi 23:6fb1181345a7 1152 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 23:6fb1181345a7 1153 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 23:6fb1181345a7 1154 sprintf(SDFilePath,"/sd/E233/StopStation/StopStation%d.bin",4);
chirashi 23:6fb1181345a7 1155 SDScrollBufferWrite(ScrollBuffer,ScrollWriteCount,0,80,16);
chirashi 23:6fb1181345a7 1156 ScrollWriteCount = ScrollWriteCount + 80;
chirashi 25:8b1da0f21d32 1157 }
chirashi 23:6fb1181345a7 1158
chirashi 8:9d22c9910917 1159
chirashi 13:0c542447e6da 1160 //Debug
chirashi 14:0f4d44927b20 1161 if(Debug == 1){
chirashi 14:0f4d44927b20 1162 //DataSerialOut
chirashi 14:0f4d44927b20 1163 for(int y = 0; y < 32; y++){
chirashi 14:0f4d44927b20 1164 for(int x = 0; x <128; x++){
chirashi 14:0f4d44927b20 1165 if(LEDBuffer[y][x]== 0){
chirashi 14:0f4d44927b20 1166 //pc.printf("0,");
chirashi 14:0f4d44927b20 1167 pc.printf(" ");
chirashi 14:0f4d44927b20 1168 }else{
chirashi 14:0f4d44927b20 1169 //pc.printf("#");
chirashi 14:0f4d44927b20 1170 pc.printf("%.02d",LEDBuffer[y][x]);
chirashi 14:0f4d44927b20 1171 }
chirashi 13:0c542447e6da 1172 }
chirashi 14:0f4d44927b20 1173 pc.printf("\r\n");
chirashi 13:0c542447e6da 1174 }
chirashi 13:0c542447e6da 1175 }
chirashi 23:6fb1181345a7 1176
chirashi 23:6fb1181345a7 1177 //test
chirashi 28:4cc6aa3acd92 1178 //sprintf(SDFilePath,"/sd/E233/whitetest.bin");
chirashi 24:7232abdf7884 1179 //SDBufferWrite(LEDBuffer,0,0,128,32);
chirashi 23:6fb1181345a7 1180
chirashi 28:4cc6aa3acd92 1181 //2段階表示に変更
chirashi 28:4cc6aa3acd92 1182 DisplayMode = 2;
chirashi 28:4cc6aa3acd92 1183
chirashi 17:95bcbc53d96b 1184 //Serial
chirashi 17:95bcbc53d96b 1185 pc.attach(pc_rx, Serial::RxIrq);
chirashi 17:95bcbc53d96b 1186
chirashi 13:0c542447e6da 1187 //DisplayTimer
chirashi 12:680db9f1f4eb 1188 ChangeTimer.attach(&TimerTick,3);
chirashi 8:9d22c9910917 1189
chirashi 22:ebab951db9f6 1190 //スクロールが有効なら
chirashi 22:ebab951db9f6 1191 //if(Scroll == 1){
chirashi 22:ebab951db9f6 1192 ////スクロール用タイマ
chirashi 22:ebab951db9f6 1193 // ScrollTimer.attach(ScrollTimerTick,0.02);
chirashi 22:ebab951db9f6 1194 //}
chirashi 17:95bcbc53d96b 1195
chirashi 17:95bcbc53d96b 1196
chirashi 13:0c542447e6da 1197 while(1) {
chirashi 29:bc82c25b6b94 1198 //CT++;
chirashi 22:ebab951db9f6 1199 // if (ChangeCount == 0){
chirashi 22:ebab951db9f6 1200 // Paint(LEDBuffer);
chirashi 22:ebab951db9f6 1201 // }else if(ChangeCount == 1){
chirashi 22:ebab951db9f6 1202 // Paint(LEDBuffer2);
chirashi 22:ebab951db9f6 1203 // }else if(ChangeCount == 2){
chirashi 22:ebab951db9f6 1204 // Paint(LEDBuffer3);
chirashi 22:ebab951db9f6 1205 // }
chirashi 22:ebab951db9f6 1206 //表示切替は切り替え時にメインバッファに書き込む
chirashi 22:ebab951db9f6 1207 Paint(LEDMainBuffer);
chirashi 22:ebab951db9f6 1208
chirashi 22:ebab951db9f6 1209 //スクロール(現状不動作)
chirashi 22:ebab951db9f6 1210 //スクロールが有効なら
chirashi 22:ebab951db9f6 1211 if(Scroll == 1){
chirashi 29:bc82c25b6b94 1212 //if(CT>0) {
chirashi 22:ebab951db9f6 1213 //MkPattern(); // Restore original priceless artwork
chirashi 29:bc82c25b6b94 1214 //CT=0; // Start all over.
chirashi 22:ebab951db9f6 1215 OE = HIGH;
chirashi 22:ebab951db9f6 1216 ScrollTimerTick();
chirashi 22:ebab951db9f6 1217 OE = LOW;
chirashi 29:bc82c25b6b94 1218 //}
chirashi 29:bc82c25b6b94 1219 //}else{
chirashi 29:bc82c25b6b94 1220 //if(CT>4160){
chirashi 29:bc82c25b6b94 1221 // CT=0;
chirashi 29:bc82c25b6b94 1222 //}
chirashi 8:9d22c9910917 1223 }
chirashi 4:245f17936b1a 1224
chirashi 22:ebab951db9f6 1225
chirashi 3:6dbbc0130e96 1226
chirashi 4:245f17936b1a 1227 //PaintOFF();
chirashi 6:e6cb4a476422 1228 //wait_us(10);
RRacer 0:1f58ecec51d6 1229 }
chirashi 3:6dbbc0130e96 1230
RRacer 0:1f58ecec51d6 1231 }