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

 
 
> Не работает синхронный захват TIMERB в MSP430FG4619
Ivaxa
сообщение Sep 19 2007, 09:58
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 10-04-07
Пользователь №: 26 914



Настройка таймера:
Код
TBCTL |=(TBSSEL0      // Тактирование от ACLK          
       + MC1);        // Непрерывный режим счета
      
TBCCTL0 |=(CM0        // Захват по обоим фронтам (программный)
         + CM1
         + CCIS1  
         // + SCS      // Синхронный захват (если раскоментировать - не работатет)
         + CAP);      // Режим захвата


Обработчик прерывания (считаю период импульсов с помощью TIMERB):
Код
#pragma vector = PORT1_VECTOR
__interrupt void PORT1_int(void)
{
unsigned int TBR_temp;

TBCCTL0 ^= CCIS0;   // Програмный захват (TBCCR0 = TBR)
TBCTL |= (TBCLR     // Очистка и перезапуск таймера
       +  MC1);
TBR_temp = TBCCR0;  
..................
}


Работает, пока не раскоментирую строку // + SCS.
В этом случае в TBCCR0 всегда или 0 или 1, когда в TBR - нормальные данные, при этом устанавливается почему-то флаг переполнения захвата COV, хотя TBR у меня никогда не переполняется

Но мне нужен именно синхронный захват. Что я делаю неправильно?

Частота входных импульсов примерно 2 Гц, ACLK=32768 Гц.
Go to the top of the page
 
+Quote Post



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

 


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


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