//#######################################################################################################
//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;
	}*/												
}