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

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Sun Jan 04 17:12:54 2015 +0000
Revision:
26:99c72fe9366e
Parent:
25:8b1da0f21d32
Child:
27:3dccc05e760b
.

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