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

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Mon Feb 02 11:44:47 2015 +0000
Revision:
28:4cc6aa3acd92
Parent:
27:3dccc05e760b
Child:
29:bc82c25b6b94
.

Who changed what in which revision?

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