智能车制作
标题:
ad转换一直为0 怎么回事
[打印本页]
作者:
盛夏的果实
时间:
2015-4-21 11:49
标题:
ad转换一直为0 怎么回事
k60 ad转换一直位0 ad=Get_AD_Channel(); 这样调用行吗?初始化话出了问题?分频有什么要求没?
作者:
玩意Tc
时间:
2015-4-21 19:50
Get_AD_Channel(); 内容是啥
作者:
564388806
时间:
2015-4-22 09:19
谁知道你怎么回事啊,都没有程序
作者:
盛夏的果实
时间:
2015-4-22 12:15
uint16 Get_AD_Channel()
{
uint16 result=0;
PORT_PCR_REG(PORTE_BASE_PTR,1) = PORT_PCR_MUX(0);
result = ADC_Once(1,5,8,0);// 0--a 1---b
return result;
作者:
盛夏的果实
时间:
2015-4-22 12:16
uint16 ADC_Once(int MoudelNumber,int Channel,uint8 accuracy,uint8 ab)//采集某路模拟量的AD值
{
uint16 result = 0;
uint8 ADCCfg1Mode = 0;
ADC_MemMapPtr ADCMoudel;//保存ADC模块地址指针
switch(accuracy)
{
case 8:
ADCCfg1Mode = 0x00;
break;
case 12:
ADCCfg1Mode = 0x01;
break;
case 10:
ADCCfg1Mode = 0x02;
break;
case 16:
ADCCfg1Mode = 0x03;
break;
default:
ADCCfg1Mode = 0x00;
}
if(MoudelNumber==0)//选择ADC模块0
{
ADCMoudel = ADC0_BASE_PTR;
}
else //选择ADC模块1
{
ADCMoudel = ADC1_BASE_PTR;
}
//配置正常电源模式,总线时钟,总线时钟4分频,长采样时间使能,设置精度
ADC_CFG1_REG(ADCMoudel) = ADLPC_NORMAL
| ADC_CFG1_ADIV(ADIV_4)
| ADLSMP_LONG
| ADC_CFG1_MODE(ADCCfg1Mode)
| ADC_CFG1_ADICLK(ADICLK_BUS);
//配置禁止异步时钟使能输出,ADxxat通道选择,高速配置,长采样时间
if(ab==0)
{
ADC_CFG2_REG(ADCMoudel) = MUXSEL_ADCA
| ADACKEN_DISABLED
| ADHSC_HISPEED
| ADC_CFG2_ADLSTS(ADLSTS_20) ;
}
else
{
ADC_CFG2_REG(ADCMoudel) = MUXSEL_ADCB
| ADACKEN_DISABLED
| ADHSC_HISPEED
| ADC_CFG2_ADLSTS(ADLSTS_2) ;
}
ADC_SC1_REG(ADCMoudel,A) = AIEN_OFF |DIFF_SINGLE | ADC_SC1_ADCH(Channel);
// hw_adc_config_alt(ADC1_BASE_PTR, &Master_Adc_Config); // 配置ADC1
//等待转换完成
while (( ADC_SC1_REG(ADCMoudel,A) & ADC_SC1_COCO_MASK ) != ADC_SC1_COCO_MASK)
{
}
//读取转化结果
result = ADC_R_REG(ADCMoudel,A);
//清ADC转换完成标志
ADC_SC1_REG(ADCMoudel,A) &= ~ADC_SC1_COCO_MASK;
return result;
}
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2