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

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Thu Mar 19 10:55:18 2015 +0000
Revision:
33:c934bc793c5a
Parent:
32:3bf210e07de7
Child:
34:9ee64899b004
.

Who changed what in which revision?

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