⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adc.c

📁 mc9s08aw60 RTC LCD PWM
💻 C
字号:
#include "config.h" 
#include <stdio.h> 
/**********************************************************************************/
//
/**********************************************************************************/

void InitAdcFunc(void) {
    PTDDD = 0x00;  // set port d as inputs for push button switch and accelerometer inputs
    PTDPE = 0x00;  // enable port d pullups on D2 and D3 for push button switch operation
    
    APCTL1  = 0x03;   // Disable IO control for ADPC8
     
    AD1SC1  = 0x22;   // Set the ADCO bit so continuous conversions are enabled
                    // Select AD8 as the input channel
    //ADC1CFG =0x08;
    ADC1CFG =0xFB;
  
}

/**********************************************************************************/
//
/**********************************************************************************/
 unsigned short  Adc0TransFunc(void){
 

    uint8 i;
		uint16 AdcMax,AdcMin,AdcSum,AdcResult,Adc_temp;
		
		AdcMax=0;
    AdcMin=~0;
    AdcSum = 0;
    Adc_temp = 0;

  APCTL1  = 0x01;   // Disable IO control for ADPC8
 
  AD1SC1  = 0x20;   // Set the ADCO bit so continuous conversions are enabled
                    // Select AD8 as the input channel
               
        for(i=0;i<100;i++)
        {
            while (AD1SC1_COCO == 0); // Wait for a conversion to be completed  
            Adc_temp  =AD1R;

            if(Adc_temp>AdcMax) 
             {
              AdcMax=Adc_temp;
             }
           if(Adc_temp<AdcMin)
             {
              AdcMin=Adc_temp;
             }
           AdcSum+=Adc_temp;
        }

	AdcResult=(AdcSum-AdcMax-AdcMin)/(100-2);
	return(AdcResult);

}

/**********************************************************************************/
//
/**********************************************************************************/
 unsigned short  Adc1TransFunc(void){
 
  uint8 i;
		uint16 AdcMax,AdcMin,AdcSum,AdcResult,Adc_temp;
		
		AdcMax=0;
    AdcMin=~0;
    AdcSum = 0;
    Adc_temp = 0;

  APCTL1  = 0x02;   // Disable IO control for ADPC8
 
  AD1SC1  = 0x21;   // Set the ADCO bit so continuous conversions are enabled
                    // Select AD8 as the input channel
               

            for(i=0;i<100;i++)
        {
            while (AD1SC1_COCO == 0); // Wait for a conversion to be completed  
            Adc_temp  =AD1R;

            if(Adc_temp>AdcMax) 
             {
              AdcMax=Adc_temp;
             }
           if(Adc_temp<AdcMin)
             {
              AdcMin=Adc_temp;
             }
           AdcSum+=Adc_temp;
        }

	AdcResult=(AdcSum-AdcMax-AdcMin)/(100-2);
	return(AdcResult);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -