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

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Sun Jan 04 16:01:31 2015 +0000
Revision:
24:7232abdf7884
Parent:
23:6fb1181345a7
Child:
25:8b1da0f21d32
??????????

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