访问手机版页面
你的位置:老古开发网 > 其他 > 正文  
AD-ARM-2132-003
内容导读:


void GetAdc(unsigned char Chnum)
{
        uint8 i,j;
        uint32 AdcValue[250];
        uint32 AdcSum;
        uint32 AdcTemp;
        AdcSum=0;
        AdcData=0;
        Chnum &= 0x07;                    
        AD0CR = (1 << Chnum)            
        ((Fpclk / 1000000 - 1) << 8)         // CLKDIV=Fpclk/1000000-1,转换时钟为1MHz
        (0 << 16)                             // BURST=0,软件控制转换操作
        (0 << 17)                             // CLKS=0, 使用11clock转换
        (1 << 21)                               // PDN=1,正常工作模式
        (0 << 22)                               // TEST1:0=00,正常工作模式
        (1 << 24)                             // START=1,直接启动ADC转换
        (0 << 27);                             // 直接启动ADC转换时,此位无效
        DelayNS(5);
        AdcData = AD0DR;        // 读取ADC结果,并清除DONE标志位
        AdcData = 0;
        for(i=0;i<250;i++)
        {
            AD0CR = 1 << 24;                    // 进行第一次转换
            while ((ADDR & 0x80000000) == 0);
            AdcValue[i] = (AD0DR &(0x3ff<<6))>>1;

            if(AdcValue[i]>AdcMax)   //保留下最大值
             {
              AdcMax=AdcValue[i];
             }
            if(AdcValue[i]<AdcMin)  //保留下最小值
             {
              AdcMin=AdcValue[i];
             }
           AdcSum+=AdcValue[i];
        }
        AdcResult=(AdcSum-AdcMax-AdcMin)/(250-2);
}

 

标签:
来源: 作者: 时间:2006/9/25 16:50:53
相关阅读
推荐阅读
阅读排行
最近更新
商品推荐