|
剛開始學(xué)的新手。我想實(shí)現(xiàn)的是按鍵按一次兩個(gè)燈都亮,再按一次亮一個(gè)燈,再按一次全滅,再按一次又全亮,然后一直循環(huán)。但不知道為什么我怎么按按鍵燈都不會(huì)變,各種方法都試過了,網(wǎng)上的案例也都試過,只能求助于諸位前輩了,可能最后發(fā)現(xiàn)問題很明顯,希望前輩們不要介意。
#include <msp430.h>
volatile unsigned int j=0;
int main(void) {
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
_DINT();
P1DIR |= BIT0+BIT6; //設(shè)置P1.0口為輸出
P1DIR &= ~BIT3; // P1.3設(shè)為輸入
P1REN |= BIT3; //啟用P1.3內(nèi)部上下拉電阻
P1OUT |= BIT3; //將電阻設(shè)置為上拉
P1IES |= BIT3; // P1.3設(shè)為下降沿中斷
P1IFG &= ~BIT3;
P1IE |= BIT3; // 允許P1.3中斷
_EINT();
while(1){
if(j==1){P1OUT=BIT0+BIT6;}
if(j==2){P1OUT=BIT0;P1OUT&=~BIT6;}
if(j==3){P1OUT=0;j=0;}
if(j>4){j=0;}
}
}
#pragma vector = PORT1_VECTOR
__interrupt void PORT_1(void) {
while ((P1IN & BIT3) == 0)
; //P1.3低
j++;
P1IFG &= ~BIT3; //中斷標(biāo)志位清零
}
|
|