Terminator_2017 0 8 мая, 2017 Опубликовано 8 мая, 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 0 9 мая, 2017 Опубликовано 9 мая, 2017 · Жалоба Добрый день! Чтобы прерывания происходили их надо разрешить в этой сторочке TBCTL=MC_2+TBSSEL_1+TBCLR+TBIFG Вместо TBIFG нужно поставить бит TBIE И описание прерывания немного по другому выглядит, потому что у таймера В 2 прерывания (хотя может для какого-то кристалла может быть и так, как у вас) #pragma vector=TIMER0_B0_VECTOR __interrupt void TIMER0_B0_ISR(void) Удачи в изысканиях :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Terminator_2017 0 10 мая, 2017 Опубликовано 10 мая, 2017 · Жалоба Добрый день, Большое спасибо за ответ! Добавил бит, но все равно не получается зайти в прерывание( Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться