[MSP430 LaunchPad - GCC] Button - Interrupt

NgoHungCuong

http://ngohungcuong.com
#1
Tương tự ví dụ với nút bấm nhưng ở đây sử dụng ngắt.
Mỗi khi ấn nút thì led sẽ thay đổi trạng thái
PHP:
#include <msp430.h>
#include <legacymsp430.h>

int main(void) {
    WDTCTL = WDTHOLD + WDTPW ;
    P1SEL &= ~(BIT0 + BIT3 + BIT6);
    P1SEL2 &= ~(BIT0 + BIT3 + BIT6) ;
    P1DIR |= BIT0 + BIT6; // P1.0 : OUT
    // BIT 3 : INPUT
    P1DIR &= ~BIT3 ; // LENH XOA BIT 3
    P1OUT |= BIT3 ;  //BIT3 = 1
    P1REN = BIT3 ; //PULL UP BIT3
   
    P1IE |= BIT3; // P1.3 interrupt enabled
    P1IFG &= ~BIT3; // P1.3 interrupt flag cleared
    __enable_interrupt();
   
    while(1) {
        /*
        if ((P1IN & BIT3)==0) {  // se tat khi p1.3 khong co bam nut.
            P1OUT |= (BIT0 + BIT6);
        } else {
            P1OUT &= ~(BIT0 + BIT6); // se sang
        }
        */
    }
    return 0;
}

interrupt (PORT1_VECTOR) PORT1_ISR(void) { 
    P1OUT ^= (BIT0 + BIT6);  // Toggle P1.0
    P1IFG &= ~BIT3; // P1.3 interrupt flag cleared
}
 

Đính kèm

Quảng cáo Google