Перейти к содержанию
    

как по срабатыванию компаратора

Джентельмены, проясните или дайте пример кода,

Нужно по переднему фронту срабатывания компаратора вычитать данные из таймера А. У меня получился такой код:

 

// настройка компаратора

CACTL1 = CARSEL+CAREF1+CAON+CAIE;

CACTL2 = P2CA0+CAF;

// настройка таймера

TACTL = TASSEL1 + TACLR+ID0+ID1; // SMCK, clear TAR, devider=8

TACCTL1 = CCIE + CCIS0 + CM0 + CAP; /* прерывание, подключить вход capture к выходу таймера, захват по переднему фронту, capture mode

TACCR1 = 1000; /* регистр, в который по моей мысли должен сохраняться ТАR при срабатывании capture*/

flagCF=1; // флаг

TACTL |= MC0; // пуск таймера, и заряда ёмкости через резюк

while(flagCF); //ждём, пока что-нибудь не сработает

temp2 = TACCR1; // сохраняём

return (temp2);

}

// а вот и прерывания:

#pragma vector=TIMERA0_VECTOR

__interrupt void TA0_timer_ISR (void)

{

TACTL &= ~(MC0+MC1);

flagCF=0; // stop timer

}

 

#pragma vector=COMPARATORA_VECTOR

__interrupt void TA0_capture_ISR (void)

{

TACTL &= ~(MC0+MC1);

flagCF=0; // stop timer

}

 

Собственно, как это сделать чудесно расписано, но примера кода нигде нет. И я вроде как всё делаю правильно, таймер запускается, но в регистр не сохраняется. Что бы это могло быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неправильно мыслите. Читайте внимательно Руководство пользователя.

1. В регистр TACCRx при захвате записывается текущее значение TAR.

2. Чтобы по сигналу от компаратора срабатывал регистр захвата нужно соответствующим (программным) образом эти сигналы скоммутировать (CAOUT назначить сигналом для входа CCI1B регистра CCR1). См. таблицу в разделе timer_A3 (стр.18) даташита MSP430F149.

3. В вашем примере описаны обработчики векторов прерываний от компаратора и от одного регистра таймера. Но у таймера ведь не один вектор прерывания! По необозначенному вами вектору TIMERA1_VECTOR происходит переход при прерывании от CCR1, CCR2 и установке TAIFG.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот Тексасовский пример в котором используется требуемые вам функции компаратора и таймера. Правда он для MSP430F1121, но это не суть важно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот Тексасовский пример в котором используется требуемые вам функции компаратора и таймера. Правда он для MSP430F1121, но это не суть важно.

 

 

Добрый день, а где можно найти этот пример?

 

А также как реализовать этот пункт: Чтобы по сигналу от компаратора срабатывал регистр захвата нужно соответствующим (программным) образом эти сигналы скоммутировать (CAOUT назначить сигналом для входа CCI1B регистра CCR1).

 

Заранее спасибо!

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

как реализовать этот пункт: Чтобы по сигналу от компаратора срабатывал регистр захвата нужно соответствующим (программным) образом эти сигналы скоммутировать (CAOUT назначить сигналом для входа CCI1B регистра CCR1)
"Чтение документации из интернета вслух - 100 евро в час". Если уж вам лень самостоятельно прочитать указанный пункт документации:

 

(CAOUT назначить сигналом для входа CCI1B регистра CCR1). См. таблицу в разделе timer_A3 (стр.18) даташита MSP430F149.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

"Чтение документации из интернета вслух - 100 евро в час". Если уж вам лень самостоятельно прочитать указанный пункт документации:

 

Я спрашивал как в коде это реализовать. Пишу на С++.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я спрашивал как в коде это реализовать. Пишу на С++.
То есть вы пишете на С++, но при этом не знаете, как записать число в регистр управления таймером? Какое число писать и в какой регистр - указано в упомянутой документации.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...