一個(gè)簡(jiǎn)單的ARM指令,卻實(shí)現(xiàn)不了如下功能:按下鍵(p0.20),實(shí)現(xiàn)led燈閃三下,松開(kāi)鍵,燈滅,采用查詢方式,不采用中斷方式,代碼如下:
********************************************************************************************************/ #include "config.h"
#define ledcon (0xfu<<28) #define beepcon (0x1<<7) #define keycon (0x1<<20)
/////////////////////////////////////////////////////////// void delay(uint32 delaytime) { uint32 i; for (;delaytime>0;delaytime--) {for(i=5000;i>0;i--);} }
/////////////////////////////////////////////////////////// void ledon() { IO2SET=ledcon; delay(10); }
////////////////////////////////////////////////////////// void ledoff() { IO2CLR=ledcon; delay(10); }
/////////////////////////////////////////////////////////// void beepon() { IO0SET=beepcon; delay(10); }
/////////////////////////////////////////////////////////// void beepoff() { IO0CLR=beepcon; delay(10); }
//////////////////////////////////////////////////////////
////////////////////////////////////////////////////////// int main (void) { uint8 nCount; //P0.20 GPIO PINSEL1=PINSEL1 & 0xfffffcff;
while (1) { if ((IO0PIN & keycon)!=0) { for(nCount=3;nCount>0;nCount--) { ledon(); //ledoff(); //如果允許執(zhí)行此語(yǔ)句,則開(kāi)機(jī)一復(fù)位燈就一直亮,如果屏蔽此語(yǔ)句,則按下鍵燈亮,松鍵燈滅,不知是何原因,請(qǐng)高手指點(diǎn)? } } else { ledoff(); } }
return 0; }
|