LEDマトリックス2枚 BME280付き

Dependencies:   mbed

Committer:
takeuchi
Date:
Fri Jun 03 01:43:36 2016 +0000
Revision:
0:cfba9bf82ab5
LED??????2??BME?????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takeuchi 0:cfba9bf82ab5 1 // LedMatrix 2mai Ondo,Situdo,Kiatu
takeuchi 0:cfba9bf82ab5 2
takeuchi 0:cfba9bf82ab5 3 #include "mbed.h"
takeuchi 0:cfba9bf82ab5 4 #include "BME280.h"
takeuchi 0:cfba9bf82ab5 5
takeuchi 0:cfba9bf82ab5 6 DigitalOut led(dp28);
takeuchi 0:cfba9bf82ab5 7
takeuchi 0:cfba9bf82ab5 8 BME280 sensor1(dp5,dp27,0x76 << 1);
takeuchi 0:cfba9bf82ab5 9
takeuchi 0:cfba9bf82ab5 10 // spi(mosi,miso,sck)
takeuchi 0:cfba9bf82ab5 11 SPI max72_spi(dp2, NC, dp6);
takeuchi 0:cfba9bf82ab5 12 DigitalOut load(dp14);//spi load
takeuchi 0:cfba9bf82ab5 13
takeuchi 0:cfba9bf82ab5 14 // CPU MT7219
takeuchi 0:cfba9bf82ab5 15 // dp1 mosi(Master In Salve Out) => DIN
takeuchi 0:cfba9bf82ab5 16 // dp2 miso(Master OutSlave) => nc
takeuchi 0:cfba9bf82ab5 17 // dp6 sck (Serial Clock) => clk
takeuchi 0:cfba9bf82ab5 18 // dp14 =>(Slave Select) load
takeuchi 0:cfba9bf82ab5 19
takeuchi 0:cfba9bf82ab5 20 int maxInUse = 2; //change this variable to set how many MAX7219's you'll use
takeuchi 0:cfba9bf82ab5 21
takeuchi 0:cfba9bf82ab5 22 // define max7219 registers
takeuchi 0:cfba9bf82ab5 23 #define max7219_reg_noop 0x00
takeuchi 0:cfba9bf82ab5 24 #define max7219_reg_digit0 0x01
takeuchi 0:cfba9bf82ab5 25 #define max7219_reg_digit1 0x02
takeuchi 0:cfba9bf82ab5 26 #define max7219_reg_digit2 0x03
takeuchi 0:cfba9bf82ab5 27 #define max7219_reg_digit3 0x04
takeuchi 0:cfba9bf82ab5 28 #define max7219_reg_digit4 0x05
takeuchi 0:cfba9bf82ab5 29 #define max7219_reg_digit5 0x06
takeuchi 0:cfba9bf82ab5 30 #define max7219_reg_digit6 0x07
takeuchi 0:cfba9bf82ab5 31 #define max7219_reg_digit7 0x08
takeuchi 0:cfba9bf82ab5 32 #define max7219_reg_decodeMode 0x09
takeuchi 0:cfba9bf82ab5 33 #define max7219_reg_intensity 0x0a
takeuchi 0:cfba9bf82ab5 34 #define max7219_reg_scanLimit 0x0b
takeuchi 0:cfba9bf82ab5 35 #define max7219_reg_shutdown 0x0c
takeuchi 0:cfba9bf82ab5 36 #define max7219_reg_displayTest 0x0f
takeuchi 0:cfba9bf82ab5 37
takeuchi 0:cfba9bf82ab5 38 #define LOW 0
takeuchi 0:cfba9bf82ab5 39 #define HIGH 1
takeuchi 0:cfba9bf82ab5 40 #define MHZ 1000000
takeuchi 0:cfba9bf82ab5 41 #define ON 1
takeuchi 0:cfba9bf82ab5 42 #define OFF 0
takeuchi 0:cfba9bf82ab5 43
takeuchi 0:cfba9bf82ab5 44 double p1,t1,h1,pp1;
takeuchi 0:cfba9bf82ab5 45 double hight,hosei;
takeuchi 0:cfba9bf82ab5 46
takeuchi 0:cfba9bf82ab5 47 void maxSingle( int reg, int col) {
takeuchi 0:cfba9bf82ab5 48 //maxSingle is the "easy" function to use for a
takeuchi 0:cfba9bf82ab5 49 //single max7219
takeuchi 0:cfba9bf82ab5 50 load = LOW; // begin
takeuchi 0:cfba9bf82ab5 51 max72_spi.write(reg); // specify register
takeuchi 0:cfba9bf82ab5 52 max72_spi.write(col); // put data
takeuchi 0:cfba9bf82ab5 53 load = HIGH; // make sure data is loaded (on rising edge of LOAD/CS)
takeuchi 0:cfba9bf82ab5 54 }
takeuchi 0:cfba9bf82ab5 55
takeuchi 0:cfba9bf82ab5 56 void maxAll (int reg, int col) { // initialize all MAX7219's in the system
takeuchi 0:cfba9bf82ab5 57 load = LOW; // begin
takeuchi 0:cfba9bf82ab5 58 for ( int c=1; c<= maxInUse; c++) {
takeuchi 0:cfba9bf82ab5 59 max72_spi.write(reg); // specify register
takeuchi 0:cfba9bf82ab5 60 max72_spi.write(col); // put data
takeuchi 0:cfba9bf82ab5 61 }
takeuchi 0:cfba9bf82ab5 62 load = HIGH;
takeuchi 0:cfba9bf82ab5 63 }
takeuchi 0:cfba9bf82ab5 64
takeuchi 0:cfba9bf82ab5 65 void maxOne(int maxNr, int reg, int col) {
takeuchi 0:cfba9bf82ab5 66 //maxOne is for adressing different MAX7219's,
takeuchi 0:cfba9bf82ab5 67 //while having a couple of them cascaded
takeuchi 0:cfba9bf82ab5 68 int c = 0;
takeuchi 0:cfba9bf82ab5 69 load = LOW;
takeuchi 0:cfba9bf82ab5 70
takeuchi 0:cfba9bf82ab5 71 for ( c = maxInUse; c >= maxNr; c--) {
takeuchi 0:cfba9bf82ab5 72 max72_spi.write(0); // no-op
takeuchi 0:cfba9bf82ab5 73 max72_spi.write(0); // no-op
takeuchi 0:cfba9bf82ab5 74 }
takeuchi 0:cfba9bf82ab5 75
takeuchi 0:cfba9bf82ab5 76 max72_spi.write(reg); // specify register
takeuchi 0:cfba9bf82ab5 77 max72_spi.write(col); // put data
takeuchi 0:cfba9bf82ab5 78
takeuchi 0:cfba9bf82ab5 79 for ( c=maxNr-1; c >= 1; c--) {
takeuchi 0:cfba9bf82ab5 80 max72_spi.write(0); // no-op
takeuchi 0:cfba9bf82ab5 81 max72_spi.write(0); // no-op
takeuchi 0:cfba9bf82ab5 82 }
takeuchi 0:cfba9bf82ab5 83 load = HIGH;
takeuchi 0:cfba9bf82ab5 84 }
takeuchi 0:cfba9bf82ab5 85
takeuchi 0:cfba9bf82ab5 86 void setup () {
takeuchi 0:cfba9bf82ab5 87 // initiation of the max 7219
takeuchi 0:cfba9bf82ab5 88 // SPI setup: 8 bits, mode 0
takeuchi 0:cfba9bf82ab5 89 max72_spi.format(8, 0);
takeuchi 0:cfba9bf82ab5 90
takeuchi 0:cfba9bf82ab5 91 // going by the datasheet, min clk is 100ns so theoretically 10MHz should work...
takeuchi 0:cfba9bf82ab5 92 // max72_spi.frequency(10*MHZ);
takeuchi 0:cfba9bf82ab5 93
takeuchi 0:cfba9bf82ab5 94 maxAll(max7219_reg_scanLimit, 0x07);
takeuchi 0:cfba9bf82ab5 95 maxAll(max7219_reg_decodeMode, 0x00); // using an led matrix (not digits)
takeuchi 0:cfba9bf82ab5 96 maxAll(max7219_reg_shutdown, 0x01); // not in shutdown mode
takeuchi 0:cfba9bf82ab5 97 maxAll(max7219_reg_displayTest, 0x00); // no display test
takeuchi 0:cfba9bf82ab5 98 for (int e=1; e<=8; e++) { // empty registers, turn all LEDs off
takeuchi 0:cfba9bf82ab5 99 maxAll(e,0);
takeuchi 0:cfba9bf82ab5 100 }
takeuchi 0:cfba9bf82ab5 101 maxAll(max7219_reg_intensity, 0x0f & 0x0f); // the first 0x0f is the value you can set
takeuchi 0:cfba9bf82ab5 102 // range: 0x00 to 0x0f
takeuchi 0:cfba9bf82ab5 103 }
takeuchi 0:cfba9bf82ab5 104
takeuchi 0:cfba9bf82ab5 105 void get_sensor1(void){
takeuchi 0:cfba9bf82ab5 106 t1=sensor1.getTemperature();
takeuchi 0:cfba9bf82ab5 107 if(t1 > 85.0){
takeuchi 0:cfba9bf82ab5 108 t1=t1-409.0-1;
takeuchi 0:cfba9bf82ab5 109 }
takeuchi 0:cfba9bf82ab5 110 h1=sensor1.getHumidity();
takeuchi 0:cfba9bf82ab5 111 pp1=sensor1.getPressure();
takeuchi 0:cfba9bf82ab5 112 pp1=pp1+int(700/9);
takeuchi 0:cfba9bf82ab5 113 }
takeuchi 0:cfba9bf82ab5 114
takeuchi 0:cfba9bf82ab5 115 int main(void) {
takeuchi 0:cfba9bf82ab5 116
takeuchi 0:cfba9bf82ab5 117 const uint64_t moji_font[] = {// bold font , kagami moji font
takeuchi 0:cfba9bf82ab5 118 0x3c66666e76663c00,//0~9
takeuchi 0:cfba9bf82ab5 119 0x7e1818181c181800,
takeuchi 0:cfba9bf82ab5 120 0x7e060c3060663c00,
takeuchi 0:cfba9bf82ab5 121 0x3c66603860663c00,
takeuchi 0:cfba9bf82ab5 122 0x30307e3234383000,
takeuchi 0:cfba9bf82ab5 123 0x3c6660603e067e00,
takeuchi 0:cfba9bf82ab5 124 0x3c66663e06663c00,
takeuchi 0:cfba9bf82ab5 125 0x1818183030667e00,
takeuchi 0:cfba9bf82ab5 126 0x3c66663c66663c00,
takeuchi 0:cfba9bf82ab5 127 0x3c66607c66663c00,
takeuchi 0:cfba9bf82ab5 128 0x6666663e06060600,// 10 h
takeuchi 0:cfba9bf82ab5 129 0x06063e66663e0000,// 11 p
takeuchi 0:cfba9bf82ab5 130 0x1818000000000000,// 12 .
takeuchi 0:cfba9bf82ab5 131 0x30480848340a0a04, // 13 dc
takeuchi 0:cfba9bf82ab5 132 0x1010157555770101,// 14 hp
takeuchi 0:cfba9bf82ab5 133 0x18187e7e18180000,// 15 +
takeuchi 0:cfba9bf82ab5 134 0x00007e7e00000000,// 16 -
takeuchi 0:cfba9bf82ab5 135 0x082a1c771c2a0800, //17 asuta1
takeuchi 0:cfba9bf82ab5 136 0x007e424a52427e00, // 18 sikaku2
takeuchi 0:cfba9bf82ab5 137 0x0000000000000000, // 19 blank
takeuchi 0:cfba9bf82ab5 138 0x60660c1830660600, // 20 %
takeuchi 0:cfba9bf82ab5 139 0x4242665a5a7e1800, // 21 uchi
takeuchi 0:cfba9bf82ab5 140 0x220424692e2a2c00 // 22 soto
takeuchi 0:cfba9bf82ab5 141 };
takeuchi 0:cfba9bf82ab5 142
takeuchi 0:cfba9bf82ab5 143 /*
takeuchi 0:cfba9bf82ab5 144
takeuchi 0:cfba9bf82ab5 145 const uint64_t moji_font[]={
takeuchi 0:cfba9bf82ab5 146 0x006e333e301e0000,//a
takeuchi 0:cfba9bf82ab5 147 0x003b66663e060607,//b
takeuchi 0:cfba9bf82ab5 148 0x001e3303331e0000,//c
takeuchi 0:cfba9bf82ab5 149 0x006e33333e303038,//d
takeuchi 0:cfba9bf82ab5 150 0x001e033f331e0000,//e
takeuchi 0:cfba9bf82ab5 151 0x000f06060f06361c,//f
takeuchi 0:cfba9bf82ab5 152 0x1f303e33336e0000,//g
takeuchi 0:cfba9bf82ab5 153 0x006766666e360607,//h
takeuchi 0:cfba9bf82ab5 154 0x001e0c0c0c0e000c,//i
takeuchi 0:cfba9bf82ab5 155 0x1e33333030300030,//j
takeuchi 0:cfba9bf82ab5 156 0x0067361e36660607,//k
takeuchi 0:cfba9bf82ab5 157 0x001e0c0c0c0c0c0e,//l
takeuchi 0:cfba9bf82ab5 158 0x00636b7f7f330000,//m
takeuchi 0:cfba9bf82ab5 159 0x00333333331f0000,//n
takeuchi 0:cfba9bf82ab5 160 0x001e3333331e0000,//o
takeuchi 0:cfba9bf82ab5 161 0x0f063e66663b0000,//p
takeuchi 0:cfba9bf82ab5 162 0x78303e33336e0000,//q
takeuchi 0:cfba9bf82ab5 163 0x000f06666e3b0000,//r
takeuchi 0:cfba9bf82ab5 164 0x001f301e033e0000,//s
takeuchi 0:cfba9bf82ab5 165 0x00182c0c0c3e0c08,//t
takeuchi 0:cfba9bf82ab5 166 0x006e333333330000,//u
takeuchi 0:cfba9bf82ab5 167 0x000c1e3333330000,//v
takeuchi 0:cfba9bf82ab5 168 0x00367f7f6b630000,//w
takeuchi 0:cfba9bf82ab5 169 0x0063361c36630000,//x
takeuchi 0:cfba9bf82ab5 170 0x1f303e3333330000,//y
takeuchi 0:cfba9bf82ab5 171 0x003f260c193f0000 //z
takeuchi 0:cfba9bf82ab5 172 };
takeuchi 0:cfba9bf82ab5 173
takeuchi 0:cfba9bf82ab5 174 */
takeuchi 0:cfba9bf82ab5 175
takeuchi 0:cfba9bf82ab5 176 // // Jissainiha konoyouni mieru
takeuchi 0:cfba9bf82ab5 177 // maxSingle(1,1); |-| -------+
takeuchi 0:cfba9bf82ab5 178 // maxSingle(2,2); |-| ------+-
takeuchi 0:cfba9bf82ab5 179 // maxSingle(3,4); |-| -----+--
takeuchi 0:cfba9bf82ab5 180 // maxSingle(4,8); |-| ----+---
takeuchi 0:cfba9bf82ab5 181 // maxSingle(5,16); |-| ---+----
takeuchi 0:cfba9bf82ab5 182 // maxSingle(6,32); |-| --+-----
takeuchi 0:cfba9bf82ab5 183 // maxSingle(7,64); |-| -+------
takeuchi 0:cfba9bf82ab5 184 // maxSingle(8,128); |-| +-------
takeuchi 0:cfba9bf82ab5 185
takeuchi 0:cfba9bf82ab5 186 int i,j,k;
takeuchi 0:cfba9bf82ab5 187 uint8_t bitsum[22][9],bit1gyou,bitline[250];
takeuchi 0:cfba9bf82ab5 188 uint64_t moji1,load_image[22];
takeuchi 0:cfba9bf82ab5 189 long hpascal,ttemp,sitemp;
takeuchi 0:cfba9bf82ab5 190 int hpketa[4],tpketa[3],siketa[3];
takeuchi 0:cfba9bf82ab5 191 int gdot[]={128,64,32,16,8,4,2,1};
takeuchi 0:cfba9bf82ab5 192 int gbit[16],gbit_s[32];
takeuchi 0:cfba9bf82ab5 193 long wtime=0;
takeuchi 0:cfba9bf82ab5 194 long hpdata[16],hprange,hpmax,hpmin;
takeuchi 0:cfba9bf82ab5 195 long hpcenter;
takeuchi 0:cfba9bf82ab5 196 int dotdata,fstloop,fshuuki;
takeuchi 0:cfba9bf82ab5 197 double hpscope;
takeuchi 0:cfba9bf82ab5 198 double gctrim=0.0;
takeuchi 0:cfba9bf82ab5 199
takeuchi 0:cfba9bf82ab5 200 setup();
takeuchi 0:cfba9bf82ab5 201
takeuchi 0:cfba9bf82ab5 202 wait(0.1);
takeuchi 0:cfba9bf82ab5 203 get_sensor1();
takeuchi 0:cfba9bf82ab5 204
takeuchi 0:cfba9bf82ab5 205 hpascal=long(pp1);
takeuchi 0:cfba9bf82ab5 206 hpmin=hpascal;
takeuchi 0:cfba9bf82ab5 207 hpmax=hpascal;
takeuchi 0:cfba9bf82ab5 208 hpscope=1;
takeuchi 0:cfba9bf82ab5 209 hprange=0;
takeuchi 0:cfba9bf82ab5 210 for(i=0;i<16;i++){
takeuchi 0:cfba9bf82ab5 211 hpdata[i]=hpascal-3;
takeuchi 0:cfba9bf82ab5 212 }
takeuchi 0:cfba9bf82ab5 213
takeuchi 0:cfba9bf82ab5 214 while(1){
takeuchi 0:cfba9bf82ab5 215
takeuchi 0:cfba9bf82ab5 216 get_sensor1();
takeuchi 0:cfba9bf82ab5 217
takeuchi 0:cfba9bf82ab5 218 hpascal=long(pp1);
takeuchi 0:cfba9bf82ab5 219 ttemp=long(t1*10); // seisuuchi henkan
takeuchi 0:cfba9bf82ab5 220 sitemp=long(h1);
takeuchi 0:cfba9bf82ab5 221
takeuchi 0:cfba9bf82ab5 222 hpketa[0]=int(hpascal/1000);hpascal=hpascal-hpketa[0]*1000;
takeuchi 0:cfba9bf82ab5 223 hpketa[1]=int(hpascal/100); hpascal=hpascal-hpketa[1]*100;
takeuchi 0:cfba9bf82ab5 224 hpketa[2]=int(hpascal/10); hpascal=hpascal-hpketa[2]*10;
takeuchi 0:cfba9bf82ab5 225 hpketa[3]=hpascal;
takeuchi 0:cfba9bf82ab5 226
takeuchi 0:cfba9bf82ab5 227 tpketa[0]=int(ttemp/100);ttemp=ttemp-tpketa[0]*100;// jyuu noketa
takeuchi 0:cfba9bf82ab5 228 tpketa[1]=int(ttemp/10);ttemp=ttemp-tpketa[1]*10;// ichi no keta
takeuchi 0:cfba9bf82ab5 229 tpketa[2]=int(ttemp); // shousuutenika no keta
takeuchi 0:cfba9bf82ab5 230
takeuchi 0:cfba9bf82ab5 231 siketa[0]=int(sitemp/100);sitemp=sitemp-siketa[0]*100;
takeuchi 0:cfba9bf82ab5 232 siketa[1]=int(sitemp/10);sitemp=sitemp-siketa[1]*10;
takeuchi 0:cfba9bf82ab5 233 siketa[2]=int(sitemp);
takeuchi 0:cfba9bf82ab5 234
takeuchi 0:cfba9bf82ab5 235 load_image[0]=moji_font[19]; //blank
takeuchi 0:cfba9bf82ab5 236 load_image[1]=moji_font[19]; //blank
takeuchi 0:cfba9bf82ab5 237 load_image[2]=moji_font[17]; //asuta
takeuchi 0:cfba9bf82ab5 238 for(i=3;i<=6;i++){// kiatu 4keta suuji [3 ~ 6]
takeuchi 0:cfba9bf82ab5 239 for(j=0;j<=9;j++){
takeuchi 0:cfba9bf82ab5 240 if(hpketa[i-3] == j){
takeuchi 0:cfba9bf82ab5 241 load_image[i]=moji_font[j];
takeuchi 0:cfba9bf82ab5 242 }
takeuchi 0:cfba9bf82ab5 243 }
takeuchi 0:cfba9bf82ab5 244 }
takeuchi 0:cfba9bf82ab5 245 load_image[7]=moji_font[14];//hp
takeuchi 0:cfba9bf82ab5 246 load_image[8]=moji_font[19]; //blank
takeuchi 0:cfba9bf82ab5 247
takeuchi 0:cfba9bf82ab5 248 if(t1 >=0){
takeuchi 0:cfba9bf82ab5 249 load_image[9]=moji_font[15];//+
takeuchi 0:cfba9bf82ab5 250 }
takeuchi 0:cfba9bf82ab5 251 else {
takeuchi 0:cfba9bf82ab5 252 load_image[9]=moji_font[16];// -
takeuchi 0:cfba9bf82ab5 253 }
takeuchi 0:cfba9bf82ab5 254
takeuchi 0:cfba9bf82ab5 255 for(i=0;i<=1;i++){// kion seisuuketa
takeuchi 0:cfba9bf82ab5 256 for(j=0;j<=9;j++){
takeuchi 0:cfba9bf82ab5 257 if(tpketa[i] == j){
takeuchi 0:cfba9bf82ab5 258 load_image[i+10]=moji_font[j];
takeuchi 0:cfba9bf82ab5 259 }
takeuchi 0:cfba9bf82ab5 260 }
takeuchi 0:cfba9bf82ab5 261 }
takeuchi 0:cfba9bf82ab5 262 load_image[12]=moji_font[12];// .
takeuchi 0:cfba9bf82ab5 263 for(j=0;j<=9;j++){// kion shousuu keta
takeuchi 0:cfba9bf82ab5 264 if(tpketa[2] == j){
takeuchi 0:cfba9bf82ab5 265 load_image[13]=moji_font[j];
takeuchi 0:cfba9bf82ab5 266 }
takeuchi 0:cfba9bf82ab5 267 }
takeuchi 0:cfba9bf82ab5 268 load_image[14]=moji_font[13]; //dc
takeuchi 0:cfba9bf82ab5 269
takeuchi 0:cfba9bf82ab5 270 load_image[15]=moji_font[19];//blank
takeuchi 0:cfba9bf82ab5 271
takeuchi 0:cfba9bf82ab5 272 for(i=0;i<=2;i++){ // situdo 3 keta
takeuchi 0:cfba9bf82ab5 273 for(j=0;j<=9;j++){
takeuchi 0:cfba9bf82ab5 274 if(siketa[i] == j){
takeuchi 0:cfba9bf82ab5 275 load_image[i+16]=moji_font[j];
takeuchi 0:cfba9bf82ab5 276 }
takeuchi 0:cfba9bf82ab5 277 }
takeuchi 0:cfba9bf82ab5 278 }
takeuchi 0:cfba9bf82ab5 279
takeuchi 0:cfba9bf82ab5 280 load_image[19]=moji_font[20]; // %
takeuchi 0:cfba9bf82ab5 281 load_image[20]=moji_font[19];//blank
takeuchi 0:cfba9bf82ab5 282 load_image[21]=moji_font[19];//blank
takeuchi 0:cfba9bf82ab5 283
takeuchi 0:cfba9bf82ab5 284 for(i=0;i<22;i++){ // 0~21 22 moji
takeuchi 0:cfba9bf82ab5 285 moji1=load_image[i];
takeuchi 0:cfba9bf82ab5 286 for(j=0;j<8;j++){// bitsum[1]
takeuchi 0:cfba9bf82ab5 287 bitsum[i][j]=0;
takeuchi 0:cfba9bf82ab5 288 }//j
takeuchi 0:cfba9bf82ab5 289 for(j=0;j<8;j++){
takeuchi 0:cfba9bf82ab5 290 bit1gyou=moji1 & 0xff;
takeuchi 0:cfba9bf82ab5 291 for(k=0;k<8;k++){// kagami moji no font
takeuchi 0:cfba9bf82ab5 292 //for(k=8;k>=1;k--){ // futuu no font
takeuchi 0:cfba9bf82ab5 293 bitsum[i][k]=bitsum[i][k]+(bit1gyou & 0x01)*pow((double)2,(double)(j));
takeuchi 0:cfba9bf82ab5 294 bit1gyou=bit1gyou >> 1;
takeuchi 0:cfba9bf82ab5 295 }//k
takeuchi 0:cfba9bf82ab5 296 moji1=moji1 >> 8;
takeuchi 0:cfba9bf82ab5 297 }//j
takeuchi 0:cfba9bf82ab5 298 }// i
takeuchi 0:cfba9bf82ab5 299
takeuchi 0:cfba9bf82ab5 300 k=0;
takeuchi 0:cfba9bf82ab5 301 for(i=0;i<22;i++){
takeuchi 0:cfba9bf82ab5 302 for(j=0;j<8;j++){
takeuchi 0:cfba9bf82ab5 303 bitline[k]=bitsum[i][j];
takeuchi 0:cfba9bf82ab5 304 k++;
takeuchi 0:cfba9bf82ab5 305 }
takeuchi 0:cfba9bf82ab5 306 }
takeuchi 0:cfba9bf82ab5 307
takeuchi 0:cfba9bf82ab5 308 for(i=0;i<=(22*8-1-16);i++){// bitline hyouji
takeuchi 0:cfba9bf82ab5 309 maxOne(1,1,bitline[i]);
takeuchi 0:cfba9bf82ab5 310 maxOne(1,2,bitline[i+1]);
takeuchi 0:cfba9bf82ab5 311 maxOne(1,3,bitline[i+2]);
takeuchi 0:cfba9bf82ab5 312 maxOne(1,4,bitline[i+3]);
takeuchi 0:cfba9bf82ab5 313 maxOne(1,5,bitline[i+4]);
takeuchi 0:cfba9bf82ab5 314 maxOne(1,6,bitline[i+5]);
takeuchi 0:cfba9bf82ab5 315 maxOne(1,7,bitline[i+6]);
takeuchi 0:cfba9bf82ab5 316 maxOne(1,8,bitline[i+7]);
takeuchi 0:cfba9bf82ab5 317 maxOne(2,1,bitline[i+8]);
takeuchi 0:cfba9bf82ab5 318 maxOne(2,2,bitline[i+9]);
takeuchi 0:cfba9bf82ab5 319 maxOne(2,3,bitline[i+10]);
takeuchi 0:cfba9bf82ab5 320 maxOne(2,4,bitline[i+11]);
takeuchi 0:cfba9bf82ab5 321 maxOne(2,5,bitline[i+12]);
takeuchi 0:cfba9bf82ab5 322 maxOne(2,6,bitline[i+13]);
takeuchi 0:cfba9bf82ab5 323 maxOne(2,7,bitline[i+14]);
takeuchi 0:cfba9bf82ab5 324 maxOne(2,8,bitline[i+15]);
takeuchi 0:cfba9bf82ab5 325
takeuchi 0:cfba9bf82ab5 326 wait(0.1);
takeuchi 0:cfba9bf82ab5 327 }
takeuchi 0:cfba9bf82ab5 328 wait(0.1);
takeuchi 0:cfba9bf82ab5 329
takeuchi 0:cfba9bf82ab5 330 }//while
takeuchi 0:cfba9bf82ab5 331 }//main
takeuchi 0:cfba9bf82ab5 332
takeuchi 0:cfba9bf82ab5 333