コード例 #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); 
}
コード例 #2
0
ファイル: control.c プロジェクト: ShangxuanWu/RoboCup
void control_init(void)
{
  init_gpio();
  init_pwm();
  LPLD_UART_Init(UART2, 115200);  //裁判机
  LPLD_UART_RIE_Enable(UART2, uart2_recv_isr);
  while (!GetCmdAction());
  
  while(1) {
      right_set_v(V_SLOW);
      left_set_v(V_SLOW);
	  scan_infrared(r1, r2, r3, r4);
	  if(IS_AT_CORNER()) break;
  }
  
  motor_time_wait = 0;
  while (1) {
	if(motor_time_wait < 100000)//等待电机反应时间 不然直接下一步有影响 没有彻底停下来
	{
        motor_time_wait ++;
        right_set_v(0);
        left_set_v(0);
	}
	else
	{
        motor_time_wait = 0;
		break;
	}
  }
  
  can_interrupt = 1;
  //计时器寄存器每减少50过1us
  LPLD_UART_Init(UART1, 19200); //读卡器
  
  LPLD_UART_Init(UART3, 9600);  //蓝牙
  LPLD_UART_Init(UART4, 9600); 
  LPLD_UART_Init(UART5, 19200); //读卡器
  LPLD_UART_RIE_Enable(UART1, uart1_recv_isr);
  
  LPLD_UART_RIE_Enable(UART3, uart3_recv_isr);
  //LPLD_UART_RIE_Enable(UART4, uart4_recv_isr);
  LPLD_UART_RIE_Enable(UART5, uart5_recv_isr);
  LPLD_LPTMR_Init(MODE_PLACC, 0, LPTMR_ALT1, IRQ_DISABLE, NULL);
  //UP_LCD_Init();		//初始化LCD
  LPLD_ADC_Init(ADC0, MODE_16, CONV_SING);
  
  memset(control_callbacks, NULL, sizeof(control_callbacks));
  memset(r1, 0, sizeof(r1));
  memset(r2, 0, sizeof(r2));
  memset(r3, 0, sizeof(r3));
  memset(r4, 0, sizeof(r4));
  
  LPLD_PIT_Init(PIT0, 5000, pit_isr0); //电机控制
  LPLD_PIT_Init(PIT1, 100000, pit_isr1);  //计时
  TIME_PASSED = 0;
}
コード例 #3
0
//--------------------------------------------------------------------------------------------
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  
}
コード例 #4
0
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通道
  
}
コード例 #5
0
/*
 * 初始化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); 
}
コード例 #6
0
ファイル: ADCConfig.c プロジェクト: A7Mliefeng/A7M
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);
}