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

 
 
> ADC в MSP430F5528, Не сбрасывается бит запуска АЦП.
JohnKorsh
сообщение Jun 10 2014, 00:50
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 182
Регистрация: 6-01-05
Из: Россия, Москва
Пользователь №: 1 820



Добрый день!
Кто работал с АЦП MSP430F5528? В DataSheet (slau208m) написано, что "запускающий" бит ADC12SC в регистре
ADC12CTL0 должен сбрасываться сам. У меня не сбрасывается - программа уходит в вечный цикл при проверке
ADC12BUSY. Порогает только принудительный сброс ADC12SC. Привожу исходники, может, кто подскажет,
что я не так понял?

Инициализация:
//
// Initialization of the ADC.
//---------------------------------------------------------------------------
void Init_ADC (void)
{
ADC12CTL0 &= ~ADC12ENC; // ADC12 enable of configuration
ADC12CTL0 |= ADC12REF2_5V + ADC12REFON + ADC12ON; // Set of the reference voltage and ADC12 On.
ADC12CTL1 |= ADC12SSEL0 + ADC12SSEL1; // Set of the SMCLK for ADC.
ADC12MCTL0 = 0x08 ; // Select of the 8 Channel.
}

Работа:
//
// Measure of the battery voltage.
//---------------------------------------------------------------------------
unsigned int Meas_Bat (void)
{
ADC12CTL0 &= ~ADC12ENC; // ADC12 enable of configuration
ADC12MCTL0 = 0x8 ; // Select of the 8 Channel.
ADC12CTL0 |= ADC12ENC + ADC12SC; // ADC12 enable of the conversion.
ADC12CTL0 &= ~ADC12SC; // ADC12 Reset of the Start bit.

// Без этой строки ожидание в следующей строке - бесконечно. А по описанию этот бит должен сбрасываться сам.

while ((ADC12CTL1 & ADC12BUSY) == ADC12BUSY)
{
Clr_WDT; // Clear of trhe Watch Dog Timer.
}

ADC12CTL0 &= ~ADC12ENC; // ADC12 enable of configuration
return (ADC12MEM0);
}
Go to the top of the page
 
+Quote Post

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


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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 15:06
Рейтинг@Mail.ru


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