Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: MSP430 в режиме захвата не происходит прерывание
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
Terminator_2017
Добрый день!

Подскажите, пожалуйста, почему в режиме захвата не происходит прерывание?
Вот листинг:
void main(void)
{
//Использование ножки P4.0 Таймер В
P4SEL=BIT0;
//Использование ножки Р1.0 Светодиод
P1DIR |= BIT0;
P1SEL|=BIT0;
P1DIR &= ~BIT0;
timerB_init();
_BIS_SR(LPM0_bits+GIE);
}

void timerB_init()
{
TBCTL=MC_2+TBSSEL_1+TBCLR+TBIFG;
TBCCTL0=CM_1+SCS+CCIS_1+CAP+CCIE;
}
#pragma vector = TIMERB0_VECTOR
__interrupt void TIMERB0_VECTOR_ISR (void)
{
P1OUT &= ~0x01;

}

В чем может быть проблема? Хочу, чтобы при каждом прерывании горел светодиод, но при шаговой проверке программа не переходит в вектор прерывания.
NikolyaN
Добрый день!

Чтобы прерывания происходили их надо разрешить в этой сторочке
TBCTL=MC_2+TBSSEL_1+TBCLR+TBIFG
Вместо TBIFG нужно поставить бит TBIE

И описание прерывания немного по другому выглядит, потому что у таймера В 2 прерывания (хотя может для какого-то кристалла может быть и так, как у вас)
Код
#pragma vector=TIMER0_B0_VECTOR
__interrupt void TIMER0_B0_ISR(void)


Удачи в изысканиях :-)
Terminator_2017
Добрый день,

Большое спасибо за ответ!

Добавил бит, но все равно не получается зайти в прерывание(
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.