Weight_Bed/ADC_Init.c

60 lines
1.4 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "H/Function_Init.H"
void ADC_Init(uint Channel);
unsigned int ADCValue = 0x0000;
bit AdcFlag = 0;
/***********ADC采样口选择*************/
#if (IC_MODEL == SC95F7617B || IC_MODEL == SC95F7616B)
enum Channel {AIN0=0,AIN1,AIN2,AIN3,AIN4,AIN5,AIN6,AIN7,AIN8,AIN9,AIN10,AIN11,AIN12,AIN13,AIN14,AIN15,VDD4=31};
#endif
#if (IC_MODEL == SC95F7615B || IC_MODEL == SC95F7613B)
enum Channel {AIN4=4,AIN5,AIN6,AIN7,AIN12=12,AIN13,AIN14,AIN15,VDD4=31};
#endif
/*****************************************************
*函数名称void ADC_Test(void)
*函数功能ADC测试
*入口参数void
*出口参数void
*****************************************************/
void ADC_Test(void)
{
ADC_Init(AIN4);
while(1)
{
ADCCON |= 0X40; //开始ADC转换
while(!AdcFlag); //等待 ADC转换完成;
AdcFlag = 0;
ADCValue = (ADCVH<<4)+(ADCVL>>4);
}
}
/*****************************************************
*函数名称void ADC_Init(uint Channel)
*函数功能ADC初始化
*入口参数Channel
*出口参数void
*****************************************************/
void ADC_Init(uint Channel)
{
ADCCON = 0X80|Channel; //开启ADCADC采样频率为2M ,选择Channel位ADC采样口
if(Channel<8)
{
ADCCFG0 = 1<<Channel; //设置Channel作为采样口
}
else
{
ADCCFG1 = 1<<(Channel-8); //设置Channel作为采样口
}
ADCCFG2 = 0x10; //ADC采样时间为三个时钟
IE |= 0X40; //开启ADC中断
EA = 1;
}
void ADC_Interrupt(void) interrupt 6
{
ADCCON &= ~(0X20); //清中断标志位
AdcFlag = 1;
}