/****************************************************************************** �� �� ����ADC.c ����������ADC�������ļ� �� �ߣ����� �� ����V1.0 �� �ڣ�2017.03.25 ******************************************************************************/ #include "ADC.h" /****************************************************************************** ��������ADC_Init �� �ܣ�ADC��ʼ�� ��ҪԤ����ADC.h�ж���ֱ��ʡ�����������ADCʱ��Ƶ�� �� ������ ����ֵ���� ******************************************************************************/ void ADC_Init(void) { ATDDIEN = 0x0FFF; //ȫ��A/D�˿ڲ���ΪADCʹ��,Ҫ����ADC_Channel_Enable�������� //ATDCTL0 = 0x0F; //��ʹ������ת��,����Ҫ���ô˼Ĵ��� ATDCTL1 = ADC_ATDCTL1_VALUE; //���÷ֱ���,��ʹ���ⲿ���� ATDCTL2 = 0x40; //��ij����Զ���CCFn��־,��ʹ���ڲ�ʱ��,��ʹ���ⲿ����,��ʹ���ж� ATDCTL3 = 0x88; //����Ҷ���,ÿ��ֻת��1��ͨ��,��ʹ��FIFOģʽ ATDCTL4 = ADC_SMP_VALUE | ADC_PRS_VALUE; } /****************************************************************************** ��������ADC_Channel_Enable �� �ܣ�������ӦADCͨ�� ��ʼ����Ϻ�,��ͨ���ڹر�״̬,��Ҫ���ô˺������� �� ����Ch ����Ҫ������ADCͨ�� ����ֵ���� ******************************************************************************/ void ADC_Channel_Enable(uint8_t Ch) { uint16_t ChBit; if(Ch >= ADC_MAX_CHANNEL_CNT) return; ChBit = 1 << Ch; ATDDIEN &= ~ChBit; } /****************************************************************************** ��������ADC_Start_Conversion �� �ܣ�������ӦADCͨ����ת�� �� ����Ch ����Ҫ����ת����ADCͨ�� ����ֵ���� ******************************************************************************/ void ADC_Start_Conversion(uint8_t Ch) { if(Ch < ADC_MAX_CHANNEL_CNT) ATDCTL5 = Ch; } /****************************************************************************** ��������ADC_Get_Conversion_Status �� �ܣ���ȡǰһ��������ADCת����״̬ �� ������ ����ֵ��ADC_CONV_COMPLETE ת������� ADC_CONV_NOT_COMPLETE ת��δ��� ******************************************************************************/ uint8_t ADC_Get_Conversion_Status(void) { if (ATDSTAT0_SCF) return ADC_CONV_COMPLETE; else return ADC_CONV_NOT_COMPLETE; } /****************************************************************************** ��������ADC_Get_Conversion_Result �� �ܣ���ȡǰһ��������ADCת����ת����� �� ������ ����ֵ��ת�������ֵ ******************************************************************************/ uint16_t ADC_Get_Conversion_Result(void) { return ATDDR0; }