LPC2929, ADC0
Что-то не пойму, выдает 0 на выходе.
Вход сам никуда не подключен, хочу посмотреть, как "шумит" разряд 0
Подскажите, как правильно его инициализировать и использовать без прерывания? Подозреваю, что тут-то собака и порылась...
Пока сделано так:
Код
void ADC0_Stop( void )
{
/* if in continuous mode and conversion is progress,
wait until it finishes. */
while ( (ADC0_STATUS & 0x01)&&(ADC0_CONFIG & 0x01) );
ADC0_CTRL = (0x01<<1);
return;
}
Код
U32 ADC0_Get_Value( void )
{
U32 regVal;
ADC0_Start();
while (ADC0_STATUS & 0x01);
regVal = (ADC0_ACD5 & 0x3FF);
ADC0_Stop();
//ADC0_CTRL = (0x01<<1);
return regVal;
}
Код
// Init
void ADC0_Init( void )
{
U32 regVal = 0;
ADC0_Stop();
CGU_FDIV_CONF1 = (0x02<<24)|(1<<12)|(26<<0);
/* Make sure FDIV1 is present. */
while ( !(CGU_RDET & (0x01<<6)) );
/* Configure the ADC clock to 32kHz (FDIV1/4)*/
ADC_CLK_CONF = CLK_SEL_PLL_FDIV1 | AUTOBLK | DIV1; /* For ADC */
ADC0_ACC0 = 0x0A; /* AD1 channel 0~7 are 10-bit resolution */
regVal = ADC0_CONFIG;
regVal &= ~(0x01<<0); /* single scan. */
/* Positive and negative edge of MSCSS timer(START3). */
ADC0_CONFIG = regVal | (1<<15);// | (1<<14);
return;
}