2013-12-10 4 views
0

msp430 mcu를 사용하면 비트 0,1,2,3을 사용하여 port1에서 인터럽트를 처리하려고합니다. 문제는 BUTTON0 (P1.0) 만 인식한다는 것입니다. 또한 P1 방향 비트 및 P1 인터럽트 가능 비트를 구현했습니다. 이렇게하려면이 코드를 작성했습니다.msp430 인터럽트 버튼이 작동하지 않습니다.

#pragma vector=PORT1_VECTOR 
__interrupt void Port_1(void) 
{ 

    WDTCTL = WDT_ADLY_250; IFG1 &= ~WDTIFG; /* clear interrupt flag */ 

    if((P1IN & BUTTON3)!=BUTTON3){ 

    if(cursor != 6){ 
     cursor++; 
    } 
    } 

    else if((P1IN & BUTTON2)!=BUTTON2){ 

    if(cursor != 0){ 
     cursor--; 
    } 
    } 

else if((P1IN & BUTTON1)!=BUTTON1){ 

    yapilanDegisiklikler[cursor]++; 

    } 


    else if((P1IN & BUTTON0)!=BUTTON0){ 

    yapilanDegisiklikler[cursor]--; 
    } 

P1IFG &= ~(BUTTON3+BUTTON2+BUTTON1+BUTTON0); 

} 

답변

0

버튼의 인터럽트 활성화 스위치가 정확한 상태가 아니기 때문입니다. 나는 그것을 조정했고 문제가 해결되었다.

+0

문제를 해결 한 모든 소스 코드를 게시하십시오. 예를 들어, 플래그 레지스터의 상태를 게시하십시오. – bblincoe

0

당신은 TI MSP430 런치 패드를 사용하고 있는지 확실하지 않습니다 만, 이것에 좋은 시작은 여기에서 찾을 수 있습니다 : MSP430 LaunchPad Push Button를.

관련 문제