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

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Mon Jan 12 05:09:51 2015 +0000
Revision:
27:3dccc05e760b
Parent:
26:99c72fe9366e
Child:
28:4cc6aa3acd92
.

Who changed what in which revision?

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