Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 #include "EEPROM24LC01.h" 00003 00004 //#define def_myAddress 0x8001 00005 00006 //Bus switch 00007 //TC7MBL3125 nOE 00008 //#define GateClose 1 00009 //#define GateOpen 0 00010 00011 //TC7MBL3126 OE 00012 #define GateClose 0 00013 #define GateOpen 1 00014 00015 00016 #define OffFET 0 00017 #define OnFET 1 00018 #define HOLD 0xff 00019 #define ALL_HOLD 0xff 00020 #define NOTHOLD 0 00021 00022 //#define test 1 00023 //#define ROMtest 1 00024 //#define debug 1 00025 00026 //#define SPIfreq 2000000 00027 #define SPIfreq 17000000 00028 00029 I2C i2c(I2C_SDA,I2C_SCL); // sda, scl 00030 EEPROM24LC01 eeprom(&i2c, 0x50); 00031 00032 //DigitalOut myGate(P0_21,0); 00033 DigitalOut Gate1_1(P0_14,1); 00034 DigitalOut Gate1_2(P0_23,1); 00035 DigitalOut Gate1_3(P0_21,1); 00036 DigitalOut Gate1_4(P0_22,1); 00037 DigitalOut Gate2_MISO(P0_20,1); 00038 DigitalOut Gate2_MOSI(P0_19,1); 00039 DigitalOut Gate2_SCK(P0_17,1); 00040 DigitalOut Gate2_4(P0_13,1); 00041 00042 DigitalInOut myIO1(P0_1);//ng 00043 DigitalInOut myIO2(P0_28); 00044 DigitalInOut myIO3(P0_27); 00045 DigitalInOut myIO4(P0_26); 00046 00047 DigitalOut myFET(P0_6,0); 00048 00049 DigitalIn iAddress1(P0_8); 00050 DigitalIn iAddress2(P0_9); 00051 00052 DigitalOut myled(LED2,0); 00053 00054 #ifdef debug 00055 Serial pc(USBTX, USBRX); // tx, rx 00056 #endif 00057 00058 //SPISlave device(P0_26, P0_25, P0_24, P0_15); // mosi, miso, sclk, ssel 00059 //SPISlave device(P0_25, P0_26, P0_24, P0_15); // mosi, miso, sclk, ssel 00060 SPISlave device(P0_25, P0_18, P0_24, P0_15); // mosi, miso, sclk, ssel 00061 00062 uint8_t address[4]; 00063 uint8_t exData[3]; 00064 uint8_t gateData; 00065 uint32_t def_myAddress; 00066 uint32_t def_searchAddress; 00067 00068 void closeAllGate(void); 00069 00070 #ifdef test 00071 void spiTest(void){ 00072 device.reply(0x00); // Prime SPI with first reply 00073 printf("SPI slave test\r\n"); 00074 while(1) { 00075 if(device.receive()) { 00076 int v = device.read(); // Read byte from master 00077 printf("Recieve = %d\r\n",v); 00078 //v = (v + 1) % 0x100; // Add one to it, modulo 256 00079 device.reply(v+1); // Make this the next reply 00080 printf("reply = %d\r\n",v); 00081 } 00082 } 00083 } 00084 00085 void IoTest(void){ 00086 int inData[4]; 00087 int inAddr1,inAddr2; 00088 00089 myIO1.input(); 00090 myIO2.input(); 00091 myIO3.input(); 00092 myIO4.input(); 00093 00094 printf("IoTest\r\n"); 00095 00096 while(1){ 00097 00098 inAddr1 = iAddress1; 00099 inAddr2 = iAddress2; 00100 if(inAddr1 == 0){ 00101 myIO1.input(); 00102 myIO2.input(); 00103 myIO3.input(); 00104 myIO4.input(); 00105 myIO1.mode(PullNone); 00106 myIO2.mode(PullNone); 00107 myIO3.mode(PullNone); 00108 myIO4.mode(PullNone); 00109 inData[0] = myIO1; 00110 inData[1] = myIO2; 00111 inData[2] = myIO3; 00112 inData[3] = myIO4; 00113 printf("inData[0] = %d\r\n",inData[0]); 00114 printf("inData[1] = %d\r\n",inData[1]); 00115 printf("inData[2] = %d\r\n",inData[2]); 00116 printf("inData[3] = %d\r\n\r\n",inData[3]); 00117 }else{ 00118 printf("myIOs output\r\n"); 00119 myIO1.output(); 00120 myIO2.output(); 00121 myIO3.output(); 00122 myIO4.output(); 00123 myIO1.mode(PullUp); 00124 myIO2.mode(PullUp); 00125 myIO3.mode(PullUp); 00126 myIO4.mode(PullUp); 00127 myIO1 = 1; 00128 myIO2 = 1; 00129 myIO3 = 1; 00130 myIO4 = 1; 00131 } 00132 printf("inAddr1 = %d\r\n",inAddr1); 00133 printf("inAddr2 = %d\r\n",inAddr2); 00134 00135 00136 Gate1_1 = 1; 00137 Gate1_2 = 1; 00138 Gate1_3 = 1; 00139 Gate1_4 = 1; 00140 Gate2_MISO = 1; 00141 Gate2_MOSI = 1; 00142 Gate2_SCK = 1; 00143 //Gate2_4 = 1; 00144 myFET = 1; 00145 myled = 1; 00146 00147 00148 wait(1); 00149 00150 if(inAddr1==1){ 00151 myIO1 = 0; 00152 myIO2 = 0; 00153 myIO3 = 0; 00154 myIO4 = 0; 00155 } 00156 00157 Gate1_1 = 0; 00158 Gate1_2 = 0; 00159 Gate1_3 = 0; 00160 Gate1_4 = 0; 00161 Gate2_MISO = 0; 00162 Gate2_MOSI = 0; 00163 Gate2_SCK = 0; 00164 //Gate2_4 = 0; 00165 myFET = 0; 00166 myled = 0; 00167 00168 wait(1); 00169 00170 } 00171 00172 } 00173 00174 #endif 00175 00176 00177 #ifdef ROMtest 00178 void EEPROMtest(void){ 00179 char bufData[10]; 00180 00181 printf("write test\n\r"); 00182 00183 bufData[0]=0x80;//address1 00184 bufData[1]=0x00;//address2 00185 bufData[2]=0x00;//address3 00186 bufData[3]=0x0D;//address4 00187 bufData[4]=0x04;//extra data 00188 bufData[5]=0x05;//extra data 00189 bufData[6]=0x06;//extra data 00190 bufData[7]=0x07;//gate open pattern number 00191 eeprom.byte8_write( bufData); 00192 00193 bufData[0]=0xAA; 00194 00195 printf("end\n\r"); 00196 00197 00198 bufData[0]=0; 00199 bufData[1]=0; 00200 bufData[2]=0; 00201 bufData[3]=0; 00202 bufData[4]=0; 00203 bufData[5]=0; 00204 bufData[6]=0; 00205 bufData[7]=0; 00206 00207 00208 eeprom.readAll( bufData, 8 ); 00209 00210 printf("0:%02x\n\r",bufData[0]); 00211 printf("1:%02x\n\r",bufData[1]); 00212 printf("2:%02x\n\r",bufData[2]); 00213 printf("3:%02x\n\r",bufData[3]); 00214 printf("4:%02x\n\r",bufData[4]); 00215 printf("5:%02x\n\r",bufData[5]); 00216 printf("6:%02x\n\r",bufData[6]); 00217 printf("7:%02x\n\r",bufData[7]); 00218 00219 printf("\n\r Read again! \n\r\n\r"); 00220 00221 00222 eeprom.readAll( bufData, 8 ); 00223 00224 printf("0:%02x\n\r",bufData[0]); 00225 printf("1:%02x\n\r",bufData[1]); 00226 printf("2:%02x\n\r",bufData[2]); 00227 printf("3:%02x\n\r",bufData[3]); 00228 printf("4:%02x\n\r",bufData[4]); 00229 printf("5:%02x\n\r",bufData[5]); 00230 printf("6:%02x\n\r",bufData[6]); 00231 printf("7:%02x\n\r",bufData[7]); 00232 00233 printf("\nend\n\r"); 00234 00235 00236 while(1); 00237 } 00238 #endif 00239 00240 void ReadDataFromEEPROM(void){ 00241 int i; 00242 char bufData[8]; 00243 char buf; 00244 char buf1,buf2; 00245 00246 eeprom.readAll( bufData, 8 ); 00247 #ifdef debug 00248 printf("0:%02x\n\r",bufData[0]); 00249 printf("1:%02x\n\r",bufData[1]); 00250 printf("2:%02x\n\r",bufData[2]); 00251 printf("3:%02x\n\r",bufData[3]); 00252 printf("4:%02x\n\r",bufData[4]); 00253 printf("5:%02x\n\r",bufData[5]); 00254 printf("6:%02x\n\r",bufData[6]); 00255 printf("7:%02x\n\r",bufData[7]); 00256 #endif 00257 00258 for(i=0;i<4;++i){ 00259 address[i] = bufData[i]; 00260 def_myAddress = (def_myAddress<<8) + bufData[i]; 00261 #ifdef debug 00262 printf("address%d : %02x\n\r",i,address[i]); 00263 #endif 00264 } 00265 #ifdef debug 00266 printf("def_myAddress %08x\n\r",def_myAddress); 00267 #endif 00268 00269 buf = 0; 00270 buf1 = iAddress1.read(); 00271 if(buf1==0){ 00272 buf1 = 1; 00273 }else if(buf1==1){ 00274 buf1 = 0; 00275 } 00276 buf = buf1; 00277 00278 // buf = iAddress1.read(); 00279 00280 00281 buf2 = iAddress2.read(); 00282 if(buf2==0){ 00283 buf2 = 1; 00284 }else if(buf2==1){ 00285 buf2 = 0; 00286 } 00287 00288 buf = (buf<<1) + buf2; 00289 00290 // buf = (buf<<1) + iAddress2.read(); 00291 00292 def_myAddress += buf; 00293 00294 #ifdef debug 00295 printf("def_myAddress %08x\n\r",def_myAddress); 00296 #endif 00297 00298 for(i=4;i<7;++i){ 00299 exData[i-4] = bufData[i]; 00300 #ifdef debug 00301 printf("exData%d : %02x\n\r",i-4,exData[i-4]); 00302 #endif 00303 } 00304 00305 gateData = bufData[7]; 00306 #ifdef debug 00307 printf("gateData : %02x\n\r",gateData); 00308 #endif 00309 00310 def_searchAddress = (def_myAddress & 0x3FFFFFFF) + 0x40000000; 00311 00312 00313 } 00314 00315 /* 00316 void holdMode(int data){ 00317 int inData[4]; 00318 00319 myIO1.input(); 00320 myIO2.input(); 00321 myIO3.input(); 00322 myIO4.input(); 00323 00324 if(data == NOTHOLD){ 00325 myIO1.mode(PullNone); 00326 myIO2.mode(PullNone); 00327 myIO3.mode(PullNone); 00328 myIO4.mode(PullNone); 00329 00330 myled = 0; 00331 00332 }else if(data == HOLD){ 00333 00334 myIO1.mode(PullDown); 00335 myIO2.mode(PullDown); 00336 myIO3.mode(PullDown); 00337 myIO4.mode(PullDown); 00338 00339 //read 00340 inData[0] = myIO1; 00341 inData[1] = myIO2; 00342 inData[2] = myIO3; 00343 inData[3] = myIO4; 00344 //printf("inData[1]=%d\r\n",inData[1]); 00345 00346 //closeAllGate(); 00347 00348 //hold 00349 myIO1.output(); 00350 myIO2.output(); 00351 myIO3.output(); 00352 myIO4.output(); 00353 00354 myIO1.mode(PullUp); 00355 myIO2.mode(PullUp); 00356 myIO3.mode(PullUp); 00357 myIO4.mode(PullUp); 00358 00359 myIO1 = inData[0]; 00360 myIO2 = inData[1]; 00361 myIO3 = inData[2]; 00362 myIO4 = inData[3]; 00363 00364 myled = 1; 00365 00366 } 00367 } 00368 */ 00369 00370 void holdIOs(int select, int readData){ 00371 00372 if(select == 1){ 00373 myIO1.mode(PullDown); 00374 //hold 00375 myIO1.output(); 00376 myIO1.mode(PullUp); 00377 myIO1 = readData; 00378 00379 }else if(select == 2){ 00380 myIO2.mode(PullDown); 00381 //hold 00382 myIO2.output(); 00383 myIO2.mode(PullUp); 00384 myIO2 = readData; 00385 00386 }else if(select == 3){ 00387 myIO3.mode(PullDown); 00388 //hold 00389 myIO3.output(); 00390 myIO3.mode(PullUp); 00391 myIO3 = readData; 00392 00393 }else if(select == 4){ 00394 myIO4.mode(PullDown); 00395 //hold 00396 myIO4.output(); 00397 myIO4.mode(PullUp); 00398 myIO4 = readData; 00399 00400 } 00401 00402 } 00403 00404 void holdMode(uint16_t data){ 00405 int inData[4]; 00406 uint8_t data8,dataBuf; 00407 data8 = data; 00408 //printf("data = %d, data8 = %d\r\n",data,data8); 00409 00410 myIO1.input(); 00411 myIO2.input(); 00412 myIO3.input(); 00413 myIO4.input(); 00414 //read 00415 inData[0] = myIO1; 00416 inData[1] = myIO2; 00417 inData[2] = myIO3; 00418 inData[3] = myIO4; 00419 //printf("inData[0]=%d\r\n",inData[0]); 00420 //printf("inData[1]=%d\r\n",inData[1]); 00421 00422 if(data == NOTHOLD){ 00423 //printf("NOTHOLD\r\n"); 00424 myIO1.mode(PullNone); 00425 myIO2.mode(PullNone); 00426 myIO3.mode(PullNone); 00427 myIO4.mode(PullNone); 00428 00429 myled = 0; 00430 00431 }else if(data == ALL_HOLD){ 00432 //printf("ALL_HOLD\r\n"); 00433 holdIOs(1,inData[0]); 00434 holdIOs(2,inData[1]); 00435 holdIOs(3,inData[2]); 00436 holdIOs(4,inData[3]); 00437 00438 myled = 1; 00439 }else{ 00440 dataBuf = data8 & 0b00000001; 00441 if(dataBuf == 1){ 00442 //printf("data 1\r\n"); 00443 holdIOs(1,inData[0]); 00444 } 00445 00446 dataBuf = (data8>>1) & 0b00000001; 00447 if(dataBuf == 1){ 00448 //printf("data 2\r\n"); 00449 holdIOs(2,inData[1]); 00450 } 00451 00452 dataBuf = (data8>>2) & 0b00000001; 00453 if(dataBuf == 1){ 00454 //printf("data 3\r\n"); 00455 holdIOs(3,inData[2]); 00456 } 00457 00458 dataBuf = (data8>>3) & 0b00000001; 00459 if(dataBuf == 1){ 00460 //printf("data 4\r\n"); 00461 holdIOs(4,inData[3]); 00462 } 00463 } 00464 } 00465 00466 00467 00468 00469 00470 void closeAllGate(void){ 00471 00472 Gate1_1 = GateClose; 00473 Gate1_2 = GateClose; 00474 Gate1_3 = GateClose; 00475 Gate1_4 = GateClose; 00476 Gate2_MISO = GateClose; 00477 Gate2_MOSI = GateClose; 00478 Gate2_SCK = GateClose; 00479 Gate2_4 = GateClose; 00480 myFET = OffFET; 00481 } 00482 00483 void writeMode1(uint16_t mode1, uint16_t mode2){ 00484 00485 switch(mode1){ 00486 case 0x01: 00487 holdMode(NOTHOLD); 00488 //close all gate 00489 myFET = OffFET; 00490 //myGate = GateClose; 00491 closeAllGate(); 00492 myled = 0; 00493 #ifdef debug 00494 printf("close gate\r\n"); 00495 #endif 00496 break; 00497 00498 case 0x02: 00499 //open gate normal IOs 00500 closeAllGate(); 00501 myFET = OffFET; 00502 //myGate = GateOpen; 00503 Gate1_1 = GateOpen; 00504 Gate1_2 = GateOpen; 00505 Gate1_3 = GateOpen; 00506 Gate1_4 = GateOpen; 00507 holdMode(NOTHOLD); 00508 myled = 1; 00509 #ifdef debug 00510 printf("open gate\r\n"); 00511 #endif 00512 break; 00513 00514 case 0x03: 00515 //Detect mode ON 00516 //myGate = GateClose; 00517 closeAllGate(); 00518 wait_ms(0.01); 00519 myFET = OnFET; 00520 myled = 1; 00521 #ifdef debug 00522 printf("Detect mode ON\r\n"); 00523 #endif 00524 break; 00525 00526 case 0x04: 00527 //Detect mode OFF 00528 //myGate = GateClose; 00529 closeAllGate(); 00530 wait_ms(0.01); 00531 myFET = OffFET; 00532 myled = 0; 00533 #ifdef debug 00534 printf("Detect mode OFF\r\n"); 00535 #endif 00536 break; 00537 00538 case 0x05://LED on 00539 myled = 1; 00540 #ifdef debug 00541 printf("LED ON\r\n"); 00542 #endif 00543 break; 00544 00545 case 0x06://LED off 00546 myled = 0; 00547 #ifdef debug 00548 printf("LED OFF\r\n"); 00549 #endif 00550 break; 00551 00552 case 0x07://SPI gate : MOSI MISO SCK CS 00553 closeAllGate(); 00554 Gate2_MOSI = GateOpen; 00555 Gate2_MISO = GateOpen; 00556 Gate2_SCK = GateOpen; 00557 Gate1_4 = GateOpen; 00558 holdMode(NOTHOLD); 00559 myled = 1; 00560 break; 00561 00562 case 0x08://One way SPI gate : MOSI SCK CS EXtra IO 00563 closeAllGate(); 00564 Gate2_MOSI = GateOpen; 00565 Gate1_2 = GateOpen; 00566 Gate2_SCK = GateOpen; 00567 Gate1_4 = GateOpen; 00568 holdMode(NOTHOLD); 00569 myled = 1; 00570 00571 break; 00572 00573 case 0x09://SCK as a clock : SCK Extra IOs 00574 closeAllGate(); 00575 Gate1_1 = GateOpen; 00576 Gate1_2 = GateOpen; 00577 Gate2_SCK = GateOpen; 00578 Gate1_4 = GateOpen; 00579 holdMode(NOTHOLD); 00580 myled = 1; 00581 00582 break; 00583 00584 case 0x0A://SPI gate : MISO SCK CS 00585 closeAllGate(); 00586 Gate1_1 = GateOpen; 00587 Gate2_MISO = GateOpen; 00588 Gate2_SCK = GateOpen; 00589 Gate1_4 = GateOpen; 00590 holdMode(NOTHOLD); 00591 myled = 1; 00592 00593 break; 00594 00595 case 0x0B://hold mode ON 00596 //holdMode(HOLD); 00597 holdMode(mode2); 00598 closeAllGate(); 00599 break; 00600 00601 case 0x0C://hold mode OFF 00602 holdMode(NOTHOLD); 00603 //closeAllGate(); 00604 break; 00605 00606 default: 00607 myFET = OffFET; 00608 //myGate = GateClose; 00609 closeAllGate(); 00610 holdMode(NOTHOLD); 00611 #ifdef debug 00612 printf("default\r\n"); 00613 #endif 00614 myled = 0; 00615 break; 00616 } 00617 } 00618 00619 00620 void writeMode2(uint16_t mode2){ 00621 //not yet 00622 00623 } 00624 00625 void resetAll(void){ 00626 myFET = OffFET; 00627 //myGate = GateClose; 00628 closeAllGate(); 00629 myled = 0; 00630 } 00631 00632 int main() { 00633 uint8_t flg_mode = 0; 00634 uint16_t SpiRdata = 0; 00635 //uint16_t SpiAddr = 0; 00636 uint32_t SpiAddr = 0; 00637 uint16_t SpiIoNo = 0; 00638 uint16_t SpiWrite = 0; 00639 uint8_t resetCounter = 0; 00640 uint8_t flg_ResetMode = 0; 00641 00642 #ifdef ROMtest 00643 EEPROMtest(); 00644 while(1){ 00645 ; 00646 } 00647 #endif 00648 00649 #ifdef test 00650 while(1){ 00651 holdMode(0b00001001); 00652 wait(1); 00653 holdMode(0b00000110); 00654 wait(1); 00655 holdMode(0b00000101); 00656 wait(1); 00657 holdMode(0b00001010); 00658 wait(1); 00659 } 00660 spiTest(); 00661 IoTest(); 00662 #endif 00663 00664 myIO1.input(); 00665 myIO2.input(); 00666 myIO3.input(); 00667 myIO4.input(); 00668 myIO1.mode(PullNone); 00669 myIO2.mode(PullNone); 00670 myIO3.mode(PullNone); 00671 myIO4.mode(PullNone); 00672 00673 myled = 1; 00674 wait(0.1); 00675 myled = 0; 00676 wait(0.1); 00677 myled = 1; 00678 wait(0.1); 00679 myled = 0; 00680 wait(0.1); 00681 00682 //myUart.printf("test OK /r/n"); 00683 //EEPROMtest(); 00684 00685 ReadDataFromEEPROM(); 00686 00687 //def_myAddress=0x80000001; 00688 //while(1); 00689 00690 myFET = OffFET; 00691 //myGate = GateClose; 00692 closeAllGate(); 00693 00694 myled = 0; 00695 device.format(8,0); 00696 device.frequency(SPIfreq); 00697 00698 device.reply(0x00); // Prime SPI with first reply 00699 00700 /* 00701 holdMode(HOLD); 00702 while(1){ 00703 ; 00704 } 00705 */ 00706 00707 while(1) { 00708 flg_ResetMode = 0; 00709 if(device.receive()) { 00710 SpiRdata = device.read(); 00711 #ifdef debug 00712 printf("device.receive() SpiRdata = %d\r\n",SpiRdata); 00713 printf("flg_mode = %d\r\n",flg_mode); 00714 #endif 00715 //myled = 1; 00716 if(SpiRdata == 0x00){ 00717 ++resetCounter; 00718 if(resetCounter >= 6){ 00719 //if((SpiRdata == 0x00)&&(flg_mode != 1)){//reset 00720 flg_mode = 0; 00721 SpiAddr = 0; 00722 SpiIoNo = 0; 00723 SpiWrite = 0; 00724 resetCounter = 0; 00725 flg_ResetMode = 1; 00726 00727 //resetAll(); 00728 myled = 1; 00729 wait(0.1); 00730 myled = 0; 00731 wait(0.1); 00732 myled = 1; 00733 wait(0.1); 00734 myled = 0; 00735 wait(0.1); 00736 #ifdef debug 00737 printf("reset\r\n"); 00738 #endif 00739 } 00740 00741 }else{ 00742 resetCounter = 0; 00743 } 00744 00745 //}else{//select mode 00746 00747 if((flg_mode == 0) && (flg_ResetMode == 0)) {//read address data 00748 SpiAddr = SpiRdata; 00749 flg_mode = 1; 00750 #ifdef debug 00751 printf("0 flg_mode = %d\r\n",flg_mode); 00752 #endif 00753 }else if(flg_mode == 1) {//read address data 00754 SpiAddr = (SpiAddr<<8) + SpiRdata; 00755 flg_mode = 11; 00756 #ifdef debug 00757 printf("1 flg_mode = %d\r\n",flg_mode); 00758 #endif 00759 }else if(flg_mode == 11) {//read address data 00760 SpiAddr = (SpiAddr<<8) + SpiRdata; 00761 flg_mode = 12; 00762 #ifdef debug 00763 printf("11 flg_mode = %d\r\n",flg_mode); 00764 #endif 00765 }else if(flg_mode == 12) {//read address data 00766 SpiAddr = (SpiAddr<<8) + SpiRdata; 00767 flg_mode = 2; 00768 #ifdef debug 00769 printf("12 flg_mode = %d\r\n",flg_mode); 00770 #endif 00771 }else if(flg_mode == 2) {//read address data 00772 SpiIoNo = SpiRdata; 00773 flg_mode = 3; 00774 #ifdef debug 00775 printf("2 flg_mode = %d\r\n",flg_mode); 00776 #endif 00777 }else if(flg_mode == 3) {//read fpga write data 00778 SpiWrite = SpiRdata; 00779 flg_mode = 0; 00780 #ifdef debug 00781 printf("3 flg_mode = %d\r\n",flg_mode); 00782 printf("SpiAddr = %d\r\n",SpiAddr); 00783 printf("SpiAddr = %08x\r\n",SpiAddr); 00784 printf("SpiIoNo = %d\r\n",SpiIoNo); 00785 printf("SpiWrite = %d\r\n",SpiWrite); 00786 #endif 00787 00788 //Select mode 00789 if(SpiAddr == def_myAddress){ 00790 #ifdef debug 00791 printf("Select mode\r\n"); 00792 #endif 00793 writeMode1(SpiIoNo,SpiWrite); 00794 //writeMode2(SpiWrite); 00795 //myled = 1; 00796 00797 /*while(1) { 00798 for(int i=0;i<SpiIoNo;++i){ 00799 myled = 1; 00800 wait(0.2); 00801 myled = 0; 00802 wait(0.2); 00803 } 00804 myled = 1; 00805 wait(1); 00806 myled = 0; 00807 wait(1); 00808 }*/ 00809 00810 flg_mode = 0; 00811 SpiAddr = 0; 00812 SpiIoNo = 0; 00813 SpiWrite = 0; 00814 00815 }else if((SpiAddr < 0x80000000)&&(SpiAddr <= def_searchAddress)){ 00816 writeMode1(SpiIoNo,SpiWrite); 00817 //writeMode2(SpiWrite); 00818 }else{//not this address 00819 //flug reset 00820 flg_mode = 0; 00821 SpiAddr = 0; 00822 SpiIoNo = 0; 00823 SpiWrite = 0; 00824 myled = 0; 00825 #ifdef debug 00826 printf("Not me\r\n"); 00827 #endif 00828 00829 } 00830 } 00831 00832 } 00833 } 00834 }
Generated on Tue Sep 6 2022 04:45:48 by
1.7.2