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

 
 
> MSPx2xx модуль АЦП10, Советы
KARLSON
сообщение Apr 19 2011, 08:51
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Здравствуйте. Предлагаю сюда вносить все вопросы связанные с АЦП10 2-го семейства.
У меня вопрос такой.
Надо оцифровывать 2 канала P3.0 (A5) и P3.7(A7).
Хочу за одно вздёргивание бита ADC10SC получить 2 измерения. И что бы эти измерения скопировались в структуру АВ с помощью DTC.
Код
#include "msp430x21x2.h"

struct _AB
{
  unsigned int A2;
  unsigned int A1;
  unsigned int A0;
}AB;

void Pause (unsigned int time) { while (time-- > 0);}

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  P2SEL = BIT6 + BIT7;
  
// сброс флага "сбой генератора" и запрет прер-ия OFIE при не исправ-ти DC-генератора
  IE1 &= ~OFIE;
  IFG1 &= ~OFIFG;

  // предустановка желаемой частоты DCOCLK = 8MГц
  _BIC_SR(OSCOFF);              // включить генератор LFXT1
  DCOCTL = CALDCO_8MHZ;
  BCSCTL1 = CALBC1_8MHZ;
  BCSCTL1 |= XT2OFF + XTS + DIVA_0; // источник такт-ия MCLK и SMCLK - DCOCLK, MCLK = DCOCTL/1, SMCLK = DCOCTL/1
  BCSCTL3 = LFXT1S_2;
// инициализация LFXT1
  do  
  {
    IFG1 &= ~OFIFG;
    Pause(5000);
  }while (IFG1 & OFIFG);

  BCSCTL2 = SELM_3  //SELM_0  (0x00)   /* MCLK Source Select 0: DCOCLK */
                 +DIVM_0  
                 +DIVS_3;
  
  ADC10CTL1 =// INCH_5
            + INCH_7
          ///  + ADC10DIV_7
           + ADC10SSEL_2   // MCLK = 8МГц
            + CONSEQ_1
           ;
   ADC10CTL0 |= ADC10SHT_3
                     //  + MSC              
                      + ADC10ON;
  
  ADC10AE0 = BIT7
           + BIT5
            ;
  ADC10DTC0 |= ADC10CT;
  ADC10DTC1 = 2;
  ADC10SA = (unsigned int ) &AB.A2;
  
  ADC10CTL0 |= ENC;
  
  while (1)
  {
    ADC10CTL0 &= ~ENC;
    
    while (BUSY & ADC10CTL1);
    ADC10CTL0 |= ENC + ADC10SC;             // Start sampling

    _NOP();
    
  }

}


Но ничего не выходит. Измерения смотрю в Watch.
Измерять один канал у меня получается. Но не переконфигурировать же мне постоянно модуль.
Посоветуйте как его настроить?


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Alexander Petrov
сообщение Jun 13 2011, 14:01
Сообщение #2





Группа: Новичок
Сообщений: 3
Регистрация: 7-12-07
Пользователь №: 33 066



Здравствуйте. Не получается запустить преобразование АЦП аппаратно при помощи Таймера0. Подскажите, если кто-то сталкивался с такой проблемой. Пробовал запускать программно из прерывания таймера - работает.
Go to the top of the page
 
+Quote Post
KARLSON
сообщение Jun 13 2011, 19:04
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 604
Регистрация: 5-05-06
Из: Нижегородская обл.
Пользователь №: 16 819



Что означает?:
Цитата(Alexander Petrov @ Jun 13 2011, 18:01) *
преобразование АЦП аппаратно при помощи Таймера0.

и
Цитата(Alexander Petrov @ Jun 13 2011, 18:01) *
запускать программно из прерывания таймера - работает.

Код в студию. настройка ацп и код настройки таймера и код прерывания таймера.

Сообщение отредактировал KARLSON - Jun 13 2011, 19:05


--------------------
Кризис - это не отсутствие денег, а отсутствие идей! Учитесь и никаких кризисов не будет.
Go to the top of the page
 
+Quote Post



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

 


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


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