示例#1
0
文件: car_init.c 项目: HolaRobo/car
void adc_init()
{
    ADC_InitTypeDef adc_init_struct={0};
    //ccd1
    adc_init_struct.ADC_Adcx = ADC1;
    adc_init_struct.ADC_DiffMode = ADC_SE;        //单端采集
    adc_init_struct.ADC_BitMode = SE_8BIT;      
    adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT;    //短采样时间
    adc_init_struct.ADC_HwAvgSel = HW_4AVG;       //4次硬件平均
    //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验  使能就不行了
    LPLD_ADC_Init(adc_init_struct);
    LPLD_ADC_Chn_Enable(ADC1, AD15); 
    
    //ccd2
    adc_init_struct.ADC_Adcx = ADC1;
    adc_init_struct.ADC_DiffMode = ADC_SE;        //单端采集
    adc_init_struct.ADC_BitMode = SE_8BIT;      
    adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT;    //短采样时间
    adc_init_struct.ADC_HwAvgSel = HW_4AVG;       //4次硬件平均
    //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验  使能就不行了
    LPLD_ADC_Init(adc_init_struct);
    LPLD_ADC_Chn_Enable(ADC1, AD17); 
    
    //ccd3
    //    adc_init_struct.ADC_Adcx = ADC0;
    //    adc_init_struct.ADC_DiffMode = ADC_SE;        //单端采集
    //    adc_init_struct.ADC_BitMode = SE_8BIT;      
    //    adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT;    //短采样时间
    //    adc_init_struct.ADC_HwAvgSel = HW_4AVG;       //4次硬件平均
    //    //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验  使能就不行了
    //    LPLD_ADC_Init(adc_init_struct);
    //    LPLD_ADC_Chn_Enable(ADC0, AD13); 
    
    adc_init_struct.ADC_Adcx = ADC0;
    adc_init_struct.ADC_DiffMode = ADC_SE;        //单端采集
    adc_init_struct.ADC_BitMode = SE_8BIT;      
    adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT;    //短采样时间
    adc_init_struct.ADC_HwAvgSel = HW_4AVG;       //4次硬件平均
    //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验  使能就不行了
    LPLD_ADC_Init(adc_init_struct);
    LPLD_ADC_Chn_Enable(ADC0, AD23);
    
    adc_init_struct.ADC_Adcx = ADC0;
    adc_init_struct.ADC_DiffMode = ADC_SE;        //单端采集
    adc_init_struct.ADC_BitMode = SE_8BIT;      
    adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT;    //短采样时间
    adc_init_struct.ADC_HwAvgSel = HW_4AVG;       //4次硬件平均
    //adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验  使能就不行了
    LPLD_ADC_Init(adc_init_struct);
    LPLD_ADC_Chn_Enable(ADC0, AD18); 
}
//--------------------------------------------------------------------------------------------
void ADC_Init(void)
{
  adc_init_struct0.ADC_Adcx = ADC0;
  adc_init_struct0.ADC_DiffMode = ADC_SE;
  adc_init_struct0.ADC_BitMode = SE_12BIT;                    //单端12位精度
  adc_init_struct0.ADC_SampleTimeCfg = SAMTIME_SHORT;           //短采样时间
  adc_init_struct0.ADC_HwAvgSel = HW_16AVG;                     //硬件平均
  
  LPLD_ADC_Init(adc_init_struct0);
  LPLD_ADC_Chn_Enable(ADC0, AD15); //陀螺仪  ADC0  A7 X轴
  LPLD_ADC_Chn_Enable(ADC0, AD8);  //模拟加速度计 ADC0  A8  ZOUT
  LPLD_ADC_Chn_Enable(ADC0, AD11); //陀螺仪  ADC0  A8 Y轴

  adc_init_struct1.ADC_Adcx = ADC1;
  adc_init_struct1.ADC_DiffMode = ADC_SE;
  adc_init_struct1.ADC_BitMode = SE_8BIT;                       //单端8位精度
  adc_init_struct1.ADC_SampleTimeCfg = SAMTIME_SHORT;           //短采样时间 
  adc_init_struct1.ADC_HwAvgSel = HW_32AVG;
  LPLD_ADC_Init(adc_init_struct1);
  LPLD_ADC_Chn_Enable(ADC1, AD14);//  白线 左电感 B10  
  LPLD_ADC_Chn_Enable(ADC1, AD15);//  蓝线 右电感 B11  
}
void init_ADC()
{
  adc0_init_struct.ADC_Adcx = ADC0;     //选择ADC0
  adc0_init_struct.ADC_BitMode = SE_12BIT;      //配置转换精度
  adc0_init_struct.ADC_CalEnable = TRUE;        //使能初始化自动校准
  adc0_init_struct.ADC_HwTrgCfg = HW_TRGA;      //配置为硬件触发转换
  adc0_init_struct.ADC_DmaEnable = TRUE;        //使能DMA
  adc0_init_struct.ADC_SampleTimeCfg = SAMTIME_LONG;
  //初始化ADC0
  LPLD_ADC_Init(adc0_init_struct);   
  //使能ADC0的AD8输入引脚复用功能
  LPLD_ADC_Chn_Enable(ADC0, AD8);
  //使能ADC0的AD8输入通道、禁用转换完成中断
  LPLD_ADC_EnableConversion(ADC0, AD8, 0, FALSE);               //使能PTB0通道
  
  adc0_init_struct.ADC_Adcx = ADC1;
  LPLD_ADC_Init(adc0_init_struct);   
  //使能ADC0的AD8输入引脚复用功能
  LPLD_ADC_Chn_Enable(ADC0, AD8);
  //使能ADC0的AD8输入通道、禁用转换完成中断
  LPLD_ADC_EnableConversion(ADC1, AD8, 0, FALSE);               //使能PTB0通道
  
}
/*
 * 初始化ADC及其通道
 *
 */
void adc_init(void)
{
  //配置ADC采样参数
  adc_init_struct.ADC_Adcx = ADC0;
  adc_init_struct.ADC_DiffMode = ADC_SE;        //单端采集
  adc_init_struct.ADC_BitMode = SE_12BIT;       //单端12位精度
  adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT;    //短采样时间
  adc_init_struct.ADC_HwAvgSel = HW_4AVG;       //4次硬件平均
  adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验
  //初始化ADC
  LPLD_ADC_Init(adc_init_struct);
  //为了保证复用功能不被占用,最好使能相应ADC通道
  //RUSH开发板的电位器使用DAD1通道进行采集
  //单端DAD1通道的引脚为(ADC0_DP1)
  LPLD_ADC_Chn_Enable(ADC0, DAD1); 
}
示例#5
0
void adc_init(myadc *adc, uint32 PIT_PeriodUs)
{
	pdb_init(adc->PDB_TriggerInputSourceSel, adc->ADC_Adcx);
	
	adc_init_struct.ADC_Adcx = adc->ADC_Adcx;
	adc_init_struct.ADC_DiffMode = ADC_SE;        //单端采集
	adc_init_struct.ADC_BitMode = SE_12BIT;       //单端12位精度
	adc_init_struct.ADC_SampleTimeCfg = SAMTIME_SHORT;    //短采样时间
	adc_init_struct.ADC_HwAvgSel = HW_4AVG;       //4次硬件平均
	adc_init_struct.ADC_PgaGain = PGA_1GAIN;      //1倍增益
	adc_init_struct.ADC_MuxSel = MUX_ADXXA;		//A输入通道
	adc_init_struct.ADC_CalEnable = TRUE; //使能初始化校验
	adc_init_struct.ADC_HwTrgCfg = HW_TRGA;   //禁用硬件触发转换
	adc_init_struct.ADC_DmaEnable = FALSE;			//禁用DMA
	adc_init_struct.ADC_Isr = adc->isr;  //设置ADC中断函数

	LPLD_ADC_Init(adc_init_struct);   //初始化ADC0
	LPLD_ADC_Chn_Enable(adc->ADC_Adcx, adc->chn);	//使能ADC0的DAD1输入引脚复用功能
	LPLD_ADC_EnableConversion(adc->ADC_Adcx, adc->chn, 0, TRUE);	//使能ADC0的DAD1输入通道及其转换完成中断
	LPLD_ADC_EnableIrq(adc_init_struct);	//使能ADC0中断
	
	pit_init(adc->PIT_Pitx, PIT_PeriodUs);
}