天天看点

合泰单片机AD转换Adc_Init.c

#include "global.h"

#define u8 unsigned char

#define u16 unsigned int

void Adc_Init(void)

{

    _adck0 = 0;

    _adck1 = 0;

    _adck2 = 0;//000:fSYS

    _adoff = 0;//0:ADC 模块电源开

    _acs2 = 1;

    _acs2 = 0;

    _acs2 = 0;//AN4

    _ace4 = 1;//1:A/D 输入,AN4

    _vrefs = 1;//ADC 数据高字节是ADRH 的bit 3,低字节是ADRL 的bit 0

}

//获取通道

u16 GetAdcValue(u8 ch)

{

    u8 i;

    u16 temp,sum;

    _adcr0&=0xf0;

    _adcr0|=ch;

    temp=0;

    sum=0;

    for(i=0;i<8;i++)

    {

        //start 0 → 1 → 0:启动

        _start=0;

        _start=1;

        _start=0;

        while(_eocb);    

        temp=_adrh;

        temp<<=8;

        temp|=_adrl;

        sum+=temp;

    }

    return sum>>3;

}

继续阅读