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

    

MSP430 в режиме захвата не происходит прерывание

Добрый день!

 

Подскажите, пожалуйста, почему в режиме захвата не происходит прерывание?

Вот листинг:

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;

 

}

 

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

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


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

Добрый день!

 

Чтобы прерывания происходили их надо разрешить в этой сторочке

TBCTL=MC_2+TBSSEL_1+TBCLR+TBIFG

Вместо TBIFG нужно поставить бит TBIE

 

И описание прерывания немного по другому выглядит, потому что у таймера В 2 прерывания (хотя может для какого-то кристалла может быть и так, как у вас)

#pragma vector=TIMER0_B0_VECTOR
__interrupt void TIMER0_B0_ISR(void)

 

Удачи в изысканиях :-)

 

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


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

Добрый день,

 

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

 

Добавил бит, но все равно не получается зайти в прерывание(

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


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация