為什么我第一次按鈕的時候正常閃爍,第二次按下按鈕的時候沒有反映,還是在閃爍,不應該熄滅嗎?
#include "ioCC2530.h"
#define uint unsigned int
#define uchar unsigned char
#define sw P1_2
#define d5 P1_3
uint fp=0;
void delay(uint time)
{
uint i;
uint j;
for(i=0;i<time;i++)
for(j=0;j<240;j++)
{
asm("NOP");
asm("NOP");
asm("NOP");
}
}
void init_vector()
{
IEN2|=0x10;
P1IEN|=0x04;
PICTL|=0x02;
EA=1;
}
#pragma vector=P1INT_VECTOR
__interrupt void zhongduan(void)
{
if(P1IFG&0x04)
{
if(fp==0)
{
fp=1;
while(1)
{
delay(1000);
d5=~d5;
}
}
else
{
d5=0;
fp=0;
}
P1IFG&=~0x04;
}
P1IF=0;
}
void main(void)
{
P1SEL&=~0x0c;
P1DIR&=~0x04;
P1DIR|=0x08;
init_vector();
d5=0;
while(1);
}
uj5u.com熱心網友回復:
第二次按鈕按下后,燈的確熄滅過,但是狠快就會接著閃爍。中斷處理函式有一段
while(1)
{
delay(1000);
d5=~d5;
}
while(1)不退出,一直在閃爍。
定義一個變數記錄第2次按下按鈕的狀態,在while(1)里判斷此變數進而退出while。
uj5u.com熱心網友回復:
能具體說下該怎么寫嗎,剛開始學,不知道怎么寫
uj5u.com熱心網友回復:
具體寫法有問題轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/145835.html
標籤:單片機/工控
上一篇:FMC-LPC引腳連接
下一篇:萌新求問
