реклама на сайте
подробности

 
 
> ADC, LPC29xx
toweroff
сообщение Feb 23 2012, 11:37
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 957
Регистрация: 19-09-06
Из: Москва
Пользователь №: 20 514



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;
}


Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.0136 секунд с 7
ELECTRONIX ©2004-2016