1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | // BigArray:Concat(BigArraySrc1,BigArraySrc2,BigArrayDst) // BigArray(adrs) function BigAry(a){ this .adrs=a; // EEPROM Address this .length=0; // Length this .set= function (idx,n){ // Set Data var adrs= this .adrs+idx*4; // EEPROM Address+Index i2cw(0x50|(((adrs>>16)&1)<<2), (adrs&0xff00)>>8,adrs&0xff, (n&0xFF000000)>>24,(n&0xFF0000)>>16,(n&0xFF00)>>8,n&0xFF); if ((idx+1)> this .length){ this .length=idx+1; } }; this .get= function (idx){ // Get Data var adrs= this .adrs+idx*4; // EEPROM Address+Index var t1,t2,t3,t4,d=0x50|(((adrs>>16)&1)<<2); i2cw(d,(adrs&0xff00)>>8,adrs&255); i2cr(d,t1,t2,t3,t4); return (t1<<24)|(t2<<16)|(t3<<8)|t4; }; } // BigArray Concat function concat(src1,src2,dst){ var s=0,d; while (s<src1.length){ d=src1.get(s);sleep(10); // Wait dst.set(dst.length,d);sleep(10); // Wait s=s+1; } s=0; while (s<src2.length){ d=src2.get(s);sleep(10); // Wait dst.set(dst.length,d);sleep(10); // Wait s=s+1; } } // Sample Code var srcAry1= new BigAry(0); var srcAry2= new BigAry(2048); var dstAry= new BigAry(4096); srcAry1.set(0, 0x30313233);sleep(9); srcAry1.set(1, 0x40414243);sleep(9); srcAry2.set(0, 0x60616263);sleep(9); srcAry2.set(1, 0x64656667);sleep(9); srcAry2.set(2, 0x68696A6B);sleep(9); srcAry2.set(3, 0x36373839);sleep(9); concat(srcAry1,srcAry2,dstAry); |