C - предотвратить активацию прерывания - MSP430 - PullRequest
0 голосов
/ 24 мая 2018

Я написал следующий код для инициализации кнопок на моем микроконтроллере MSP430:

    void Initialize(void){

       P1REN |= 0x02;                          
       P1OUT |= 0x02;                         
       P2REN |= 0x02;                          
       P2OUT |= 0x02;                          
       P1IE |= 0x02;                           
       P2IE |= 0x02;                              
       P1IFG &= ~0x02;                         
       P2IFG &= ~0x02;                         

       TA1CTL = TASSEL_1+ID_0+MC_2+TACLR;      
       TA1R = 40000;                         

       _BIS_SR(GIE);                           

    }

Как предотвратить, чтобы строка P1IFG & = ~ 0x02;провоцирует прерывание?Я новичок в программировании микроконтроллеров и прочитал, что эта строка вызывает прерывание, если что-то меняется в регистре P1IE.

Спасибо за вашу помощь!

1 Ответ

0 голосов
/ 24 мая 2018

В руководстве пользователя сказано:

Запись в P1OUT, P1DIR, P2OUT или P2DIR может привести к установке соответствующих флагов P1IFG или P2IFG.

Однако этоКод очищает флаги PxIFG перед глобальным разрешением прерываний (GIE), поэтому непреднамеренное прерывание не может произойти.

...