模拟信号/数字信号
(1)、模拟信号是一种在时间上连续,数值上也连续的物理量,具有无穷多的数值,从自然界感知的大部分物理量都是模拟性质的,如速度,压力,温度,声音等。
(2)、数字信号在时间上和数值上均是离散的,而离散信号的值只有真与假,是或不是,因此可以使用二进制中的0与1来表示 。
ADC驱动流程
ADC主要驱动程序
main.c
#define ADC_FREQ 2500000
void Main(void)
{
/*时钟初始化*/
Set_Clk();
/*adc初始化*/
adc_init();
while(1)
{
/*读取转换值*/
adc_value=ReadAdc(0);
delay(1000) ;
}
}
void adc_init(void)
{
//选择输入通道,AIN0,对应开发板上W1可调电阻
int channel=0;
/*设置分频时钟*/
preScaler = ADC_FREQ;
preScaler = 50000000/ADC_FREQ - 1; //PCLK=50M
/*AD转换频率设置,最大频率为2.5MHz*/
rADCCON = (1<<14)|(preScaler<<6)|(channel<<3); //setup channel
delay(1000);
}
**************************************************/
int ReadAdc(int channel)
{
/*开始AD转换*/
rADCCON |= 0x01; //start ADC
while(rADCCON & 0x1); //check if Enable_start is low
/*检查转换是否结束*/
while(!(rADCCON & 0x8000)); //check if EC(End of Conversion) flag is high
return ( (int)rADCDAT0 & 0x3ff );
}