//####################################################################################################### //BF -> get data from ADC void Hardware::READADC_ALL2(unsigned char which, unsigned long *DataArray1, unsigned int count) { unsigned long *source; unsigned int i; switch (which) { case 1: source = ((unsigned long*)(0x00A00000)); //load address channel 1 break; case 2: source = ((unsigned long*)( 0x00A00010)); //load address channel 2 break; case 3: source = ((unsigned long*)(0x00A00020)); //load address channel 3 break; case 4: source = ((unsigned long*)(0x00A00030)); //load address channel 4 break; } for (i = 0; i < count; i++) { DataArray1[i] = *source; } /*asm(" CMPI %i0, 0x01 ; Is it channel 1 IFS cc_z BR lpr1ch1n NOP CMPI %i0, 0x02 ; Is it channel 2 IFS cc_z BR lpr1ch2n NOP CMPI %i0, 0x03 ; Is it channel 3 IFS cc_z BR lpr1ch3n NOP CMPI %i0, 0x04 ; Is it channel 4 IFS cc_z BR lpr1ch4n NOP lpr1ch1n: PFX %hi(0x00A00000) ; load address channel 1 MOVI %l0,%lo(0x00A00000) PFX %xhi(0x00A00000) MOVHI %l0,%xlo(0x00A00000) BR lpr1n NOP lpr1ch2n: PFX %hi(0x00A00010) ; load address channel 2 MOVI %l0,%lo(0x00A00010) PFX %xhi(0x00A00010) MOVHI %l0,%xlo(0x00A00010) BR lpr1n NOP lpr1ch3n: PFX %hi(0x00A00020) ; load address channel 3 MOVI %l0,%lo(0x00A00020) PFX %xhi(0x00A00020) MOVHI %l0,%xlo(0x00A00020) BR lpr1n NOP lpr1ch4n: PFX %hi(0x00A00030) ; load address channel 4 MOVI %l0,%lo(0x00A00030) PFX %xhi(0x00A00030) MOVHI %l0,%xlo(0x00A00030) lpr1n: LD %l2, [%l0] MOV %r0, %l2 ST [%i1], %r0 ; calc new adresses ADDI %i1, 4 ; Add Address Counter SUBI %i2, 1 ; Decrement Line Counter SKPS cc_z BR lpr1n NOP ");*/ } unsigned char Hardware::EXTRACTADCVAL(unsigned char which, unsigned long value) { unsigned long *temp; unsigned char res; *temp = value; res = temp[(unsigned char)(4 - which)]; return res; /*switch(which) { case 1 : asm(" MOV %r0,%i1 EXT8S %r0,3 MOV %i0, %r0 "); break; case 2 : asm(" MOV %r0,%i1 EXT8S %r0,2 MOV %i0, %r0 "); break; case 3 : asm(" MOV %r0,%i1 EXT8S %r0,1 MOV %i0, %r0 "); break; case 4 : asm(" MOV %r0,%i1 EXT8S %r0,0 MOV %i0, %r0 "); break; }*/ }