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

 
 
 
Reply to this topicStart new topic
> MSP430 в режиме захвата не происходит прерывание
Terminator_2017
сообщение May 8 2017, 09:23
Сообщение #1





Группа: Участник
Сообщений: 6
Регистрация: 18-04-17
Пользователь №: 96 596



Добрый день!

Подскажите, пожалуйста, почему в режиме захвата не происходит прерывание?
Вот листинг:
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;

}

В чем может быть проблема? Хочу, чтобы при каждом прерывании горел светодиод, но при шаговой проверке программа не переходит в вектор прерывания.
Go to the top of the page
 
+Quote Post
NikolyaN
сообщение May 9 2017, 07:45
Сообщение #2





Группа: Участник
Сообщений: 14
Регистрация: 28-08-09
Пользователь №: 52 074



Добрый день!

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

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


Удачи в изысканиях :-)
Go to the top of the page
 
+Quote Post
Terminator_2017
сообщение May 10 2017, 15:09
Сообщение #3





Группа: Участник
Сообщений: 6
Регистрация: 18-04-17
Пользователь №: 96 596



Добрый день,

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

Добавил бит, но все равно не получается зайти в прерывание(
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd May 2017 - 09:01
Рейтинг@Mail.ru


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