#include "ioaduc7060.h"
#include "intrinsics.h"
#include "stdio.h"
#include "string.h"
#include "Definitions.h"

void ADC0_Configuration(void){

        ADC1CON	= 0;
	ADCMSKI = BIT0;					                // Erzeugt Interrupt, wenn das ADCxRDY-Bit im ADCSTA-Register gesetzt ist/wird.
	    
  /*______ADCFLT für f = 100 Hz______*/       
        
        //ADCFLT =  0x804F;					        // (0x4F)hex = (79)dez	--> fADC = 100Hz + CHOPEN 
        //ADCFLT =  0x4F;                                               // CHOP-OFF
        
  /*______ADCFLT für f = 50 Hz______*/     
        
         //ADCFLT =  0x807F;                                               // CHOP-ON, AF = 0, SF = 127 --> fADC = 50 Hz
       //ADCFLT =  0x7F;                                                 // CHOP-OFF, AF = 0, SF = 127 --> fADC = 50 Hz
 
  /*______ADCFLT für f = 10 Hz______*/         
        
        //ADCFLT =  0x961F;                                               // CHOP-ON, AF = 22, SF = 31 --> fADC = 10 Hz
      // ADCFLT =  0x161F;                                               // CHOP-OFF, AF = 22, SF = 31 --> fADC = 10 Hz
       
  /*______ADCFLT für f = 1000 Hz______*/          
        
        //ADCFLT =  0xC101;                                               // CHOP-ON, AF = 1, SF = 1 --> fADC = 1000 Hz
        ADCFLT =  0x4101;                                               // CHOP-OFF, AF = 1, SF = 1 --> fADC = 1000 Hz      
       
        ADC0CON	= BIT15;                                                // enable the Primary-ADC, Codierung Zweierkompliment
        
	ADCCFG =  0;							// alle deaktiviert

  /*______Offset-Calibration______*/

	ADCMDE =  BIT2 +   					        // ADC self-offset calibration , ADC normal mode
		  BIT7;							// ADCCLK = 4Mhz

	while((ADCSTA & BIT15) != BIT15){}  	                        // Solange ausführen, bis BIT15 gesetzt wird (Calibration vollendet)
 
  /*______Gain-Calibration______*/
	

	ADCMDE =  BIT0 + BIT2 + 			                // ADC self-gain calibration , ADC normal mode
		  BIT7;							// ADCCLK = 4Mhz

	while((ADCSTA & BIT15) != BIT15){} 		                // Solange ausführen, bis BIT15 gesetzt wird (Calibration vollendet)
  
  /*______Calibrierung fertig______*/       
	
/*
        ADC0CON	= BIT4 +                                                // external REF (2.5V), GAIN = 1; Codierung Zweierkompliment
                  BIT12 +                                               // if External Reference for ADC0 exceeds 1.35V
                  BIT15;                                                // enable the Primary-ADC
       */  
	ADCMDE =  BIT0 + 						// ADC continuous conversion mode , ADC normal mode
	          BIT7;							// ADCCLK = 4Mhz 
}