天天看點

合泰單片機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;

}

繼續閱讀