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

 
 
> как по срабатыванию компаратора, вычитать значение TAR в 430F149
Dmitron
сообщение Mar 28 2006, 15:50
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 627
Регистрация: 24-03-05
Из: Севастополь
Пользователь №: 3 655



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

// настройка компаратора
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
}

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


--------------------
Решаю любые проблемы кроме своих
(dmitron1036()mail.ru)
http://uselect-el.ucoz.com
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Apr 18 2017, 10:14
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



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

QUOTE (rezident @ Mar 28 2006, 19:08) *
(CAOUT назначить сигналом для входа CCI1B регистра CCR1). См. таблицу в разделе timer_A3 (стр.18) даташита MSP430F149.





--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



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

 


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


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