Conjunto electromagnético de automóvil inteligente Freescale, cómo comenzar con el módulo AD, cuáles son las declaraciones de uso común, ¿pueden mostrarme un programa con comentarios de traducción?
void ADC_init(void){
MCF_GPIO_PANPAR=MCF_GPIO_PANPAR_AN0_AN0 |MCF_GPIO_PANPAR_AN1_AN1 |MCF_GPIO_PANPAR_AN2_AN2 |MCF_GPIO_PANPAR_AN3_AN3;
MCF_ADC_CTRL1=MCF_ADC_CTRL 1_STOP0 |MCF_ ADC_CTRL1_CHNCFG(0) |MCF_ADC_CTRL1_SMODE(2) ) ; //0-escaneo secuencial de una sola vez; escaneo secuencial de 2 ciclos
MCF_ADC_CTRL2=MCF_ADC_CTRL2_DIV(8); el reloj AD no puede exceder los 5 MHZ
MCF_ADC_ADZCC=0;
MCF_ADC_ADSDIS_DS 4 ; //Registro de desactivación de muestreo, muestreo canal de entrada 2 Apague y todo el muestreo simultáneo
MCF_ADC_ADLSTAT=0XFFFF; //Registro de estado límite
/*Dominio de alto valor y grupo de registro de dominio de bajo valor*/ MCF_ADC_ADLLMT(0)= MCF_ADC_ADLLMT_LLMT( 1500);
MCF_ADC_ADLLMT(1)=MCF_ADC_ADLLMT_LLMT(0);
MCF_ADC_ADLLMT(2)=MCF_ADC_ADLLMT_LLMT(0); = MCF_ADC_ADLLMT_LLMT (0); Mcf_adc_adhlmt_hlmt (0xffff);
p>
MCF_ADC_ADHLMT(3)=MCF_ADC_ADHLMT_HLMT(0xFFFF);
/*Registro de compensación, el valor en el registro de compensación (ADOFSn) se utiliza para restar el ADC original valor, y el resultado se almacena en el registro ADRSLTn*/ MCF_ADC_ADOFS(0)=MCF_ADC_ADOFS_OFFSET(0);
MCF_ADC_ADOFS(1)=MCF_ADC_ADOFS_OFFSET(0);
MCF_ADC_ADOFS(2 )=MCF_ADC_ADOFS_OFFSET(0) ;
MCF_ADC_ADOFS(3)=MCF_ADC_ADOFS_OFFSET(0);
MCF_ADC_ADZCSTAT=0XFF; MCF_ADC_POWER|=MCF_ADC_POWER_ASB //Registro de control de potencia, automático
Modo de espera habilitado
}
void ADC_start(void){
MCF_ADC_POWERamp;=~MCF_ADC_POWER_PD0 //El convertidor A seguirá aumentando la potencia (APD= 0; ) o aumentar automáticamente la potencia según sea necesario (APD=1)
while(MCF_ADC_POWERamp; MCF_ADC_POWER_PSTS0); //El convertidor ADC actual está apagado
MCF_ADC_CTRL1amp;=~MCF_ADC_CTRL1_STOP0;
p>MCF_ADC_CTRL1|=MCF_ADC_CTRL1_START0;
}