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

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Sun Jan 04 17:06:32 2015 +0000
Revision:
25:8b1da0f21d32
Parent:
24:7232abdf7884
Child:
26:99c72fe9366e
a

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