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

📄 adc.c

📁 用iAR编写的AD转换程序
💻 C
字号:
#include "includes.h"

uchar AdReBuf[AD_BUF_SIZE];
uchar AdCount;
uchar AdComFlag;
uchar FisrtAdComFlag;



#pragma vector=ADC_vect
__interrupt  void ADC_COM_ISR(void)
{
    uchar temp;
    temp = ADCH;
    if(FisrtAdComFlag){
        AdReBuf[AdCount] = temp;
        AdCount++;
        if(AdCount < 3){
            ADCSRA |= (1<<ADSC);
        }else {
            AdCount   = 0;
            AdComFlag = 1;
        }
    }else FisrtAdComFlag = 1;
    
            
}
uchar GetAdRe(void)
{
    uchar temp;
    if(AdReBuf[0] >= AdReBuf[1]){
        temp = AdReBuf[0];
    } else temp = AdReBuf[1];
    if(temp >= AdReBuf[2]){
        return temp;
    } else return AdReBuf[2];
}//对三次采样值比较取最大值

uchar ReadAd(uchar AdMux)
{
    uchar temp;
    ADMUX    &= 0xF0;//ADMUX低四位清零
    ADMUX    |= (AdMux & 0x0f);//选择通道
    ADCSRA   |= (1<<ADSC);
    while(!AdComFlag);
    temp      = GetAdRe();
    AdComFlag = 0;
    return temp;
}

void FirstAd(void)
{
    
    ADCSRA  |= (1<<ADSC);
    while(!FisrtAdComFlag);
    
}

⌨️ 快捷键说明

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