智能车制作

标题: K60 AD 问题 [打印本页]

作者: a959845298    时间: 2012-5-2 10:53
标题: K60 AD 问题
void AD_init(void)
{
PORTB_PCR2|=PORT_PCR_MUX(0);             //PB0 ADC0_SE12
  SIM_SCGC6|=(SIM_SCGC6_ADC0_MASK);     //OPEN AD0 CLOCK
  //正常电源模式  总线4分频     长时间采样   12位精度  总线时钟
ADC0_CFG1|=ADC_CFG1_ADIV(2);
  ADC0_CFG1|=ADC_CFG1_ADLSMP_MASK;
  ADC0_CFG1|=ADC_CFG1_MODE(1);
    ADC0_CFG1|=ADC_CFG1_ADICLK(0);
  
  
  
  //异步时钟禁止  通道 选择    长时间采样  高速配置
  ADC0_CFG2|=ADC_CFG2_MUXSEL_MASK;    // channel a
  ADC0_CFG2&=~ADC_CFG2_ADHSC_MASK;  //nomal speed
  ADC0_CFG2|=ADC_CFG2_ADLSTS(0);        //24 CPU CYCLE  
  
  
  ADC0_SC1A&=~ADC_SC1_DIFF_MASK ;     //  SIGNAL-ended conversions
  ADC0_SC1A&=~ADC_SC1_AIEN_MASK;     //INTERRUPT DISABLED
                        
   
}
uint16 result=0;
void get_AD(void)
{
ADC0_SC1A|=ADC_SC1_ADCH(12);  
while((ADC0_SC1A&ADC_SC1_COCO_MASK)!=ADC_SC1_COCO_MASK)
{
  }
result=ADC0_RA;
ADC0_SC1A&=ADC_SC1_COCO_MASK;
}


一直卡在 while  里面  似乎不能转换一样。、、、、各路大神知道原因吗

作者: guang09080908    时间: 2012-5-5 10:28
不用这样啊  直接看龙丘给的AD代码就行
作者: RusonLuo    时间: 2012-6-13 22:43
guang09080908 发表于 2012-5-5 10:28
不用这样啊  直接看龙丘给的AD代码就行

请问一下你解决了多路采集的问题没


作者: 庄严    时间: 2012-6-13 23:05
你有没有先调用初始化函数?
作者: guang09080908    时间: 2012-6-14 00:34
解决了,AD通道可以不连续,但是我加了延时 切换的时候
作者: 写轮无语    时间: 2013-3-11 21:22
guang09080908 发表于 2012-6-14 00:34
解决了,AD通道可以不连续,但是我加了延时 切换的时候

请问你怎么解决的  ???我之前还好好的   现在加了两通道不知道怎么就不行了





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