智能车制作

标题: ADC 虐死我啦!! [打印本页]

作者: 小猪的奋斗    时间: 2014-3-15 11:51
标题: ADC 虐死我啦!!
  大家好 我是用的是coldfree 52255  做光电!  搞啦好长时间的 adc啦 真的不知道到底哪里出错啦。。。 我使用的是蓝宙的上位机   我一开始仅仅 一  ccd采集  adc(12位 转化为8位  二   发送到上位机上 看图像 虽然有点杂波 但是大体图形是对的  但是我把CCD采集到的数据打印出来 (printf)  大都是255       本以为是格式的错误 我就弄拉个滑动变阻器来检测一下adc的数值  发现没啥问题 !!!    (0--255)  。。。。。 真的不知道哪里的错误 到底怎么搞才好  。。。。   求大家指点  我的q519069167  麻烦大家啦!!!

作者: 小猪的奋斗    时间: 2014-3-15 11:53
#include "ADC.h"


int AD_Value_temp;
int sum;
void ADC_init(void)
{
       
        MCF_GPIO_PANPAR = 0xFF;
               
        MCF_ADC_CTRL1   = 0b0101000000000010;//循环顺序扫描模式,AN0~7设为单端输入,禁止中断,停止转换
       
       
        //SMODE=2.循环顺序扫描
        //CHNCFG=0,8路ANn都设为单端输入
        //HLMTIE=0,禁止超上限中断
        //LLMTIE=0,禁止超下限中断
        //ZCIE=O,禁止过零中断
        //EOSIEO=0,禁止转换完成中断
        //SYNC0=1,由SYNC0输入或写START0启动扫描
        //START=0,未启动扫描
        //STOP0=1,停止转换


        MCF_ADC_CTRL2   = 0b0000000000001001;
        //DIV=20,ADC时钟频率
        //(fAD=fBUS/((9+1)*2)
       
        MCF_ADC_POWER   = 0b0000000010100100;
        //PD0=0,转换器A上电
        //PD1=0,转换器B上电
        //PD2=1,参考电压电路上电依赖于转换器A/B
        //APD=0,禁止自动掉电
        //PUDELAY=10;上电延时为1O个ADC时钟周期
        //ASB=0,禁止自动低功耗模式
       
        MCF_ADC_CAL     = 0b0000000000000000;
        //SEL_VREFH=0,SEL_VREFL=O
        //使用内部参考电压VRH和VRL       

       
        MCF_ADC_CTRL1  &= 0xBFFF;
       
        while(MCF_ADC_POWER&MCF_ADC_POWER_PSTS0) ;
       
        while(MCF_ADC_POWER&MCF_ADC_POWER_PSTS1) ;
       
        MCF_ADC_CTRL1  |= 0X2000;

       
}


uint16 ADonce(uint16 ANn)
{
        uint16 result;
        while(MCF_ADC_ADSTAT&(1<<ANn)==0);
        result= ((MCF_ADC_ADRSLT(ANn))>>3);
        return result;
               
}




作者: 幕水欣留芳    时间: 2014-4-12 16:06
你是怎么转化为八位的,是用位移还是什么




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2