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

Dependencies:   SDFileSystem mbed

Committer:
chirashi
Date:
Thu Dec 04 12:28:33 2014 +0000
Revision:
23:6fb1181345a7
Parent:
22:ebab951db9f6
Child:
24:7232abdf7884
.

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