分类: 嵌入式
2011-05-05 13:09:56
void Test_Adc(void);
void xmain(void)
{
ChangeClockDivider(3,1); //1:3:6
ChangeMPllValue(127,2,1); //405MHZ
Port_Init();
Isr_Init();
Uart_Init(0, 115200);
Uart_Select(0);
Uart_Printf("the main is running\n");
Test_Adc(); //AD测试函数
}
//==================================================================================
int ReadAdc(int ch) //读ADC函数,ch决定那个通道被选择,通道数(ch为0-7
{
int i;
static int prevCh="-1";
//ADC设置使能端
//设置数分频值为49
//选择通道位,选中的通道上的电压被连接到AD
rADCCON = (1<<14)|(49<<6)|(ch<<3);
if(prevCh!=ch)
{
for(i=0;i<1000;i++); //delay to set up the next channel
prevCh="ch";
}
rADCCON|=0x1; //使能ADC
while(!(rADCCON & 0x8000)); //判断转换是否完成,如果完成跳到下一个语句,
//否则死循环,直到完成为止。
//ADCCON[15]位:转换结果标志位,是只读位,如果值为0则表示在
//模数转换过程中,如果为1则表示模数转换已完成。
return ( (int)rADCDAT0 & 0x3ff ); //返回的数即为ADC转换的数字量。
}
//==================================================================================
void Test_Adc(void)
|