這幾顆按鈕在NXC的對應名稱:BTNLEFT、BTNCENTER、BTNRIGHT、BTNEXIT
常用的 Function
- 按鈕是否有按下:bool ButtonPressed( const byte btn, bool resetCount )
- 計算按幾次:byte ButtonPressCount ( const byte btn )
- 等待某個按鈕是否壓下:until(ButtonPressed(BTNCENTER, false)==1)
下面的程式是測試 A Port馬達的正反轉功能,當按一下左 Button後馬達停止並等待 Enter鈕的按下啟動馬達,當按一下右 Button則馬達反向驅動。
task main(){
string strMsg;
int iPower=30;
while(true){
if(ButtonPressed(BTNLEFT, false)){
Off(OUT_A);
ClearScreen();
iPower=30;
TextOut(0,LCD_LINE2,"Press CenterBtn");
TextOut(0,LCD_LINE3,"Waiting Start");
until(ButtonPressed(BTNCENTER, false)==1);
ClearScreen();
}
if (ButtonPressed(BTNRIGHT, false)){
Off(OUT_A);
ClearScreen();
iPower=-30;
TextOut(0,LCD_LINE2,"Press CenterBtn");
TextOut(0,LCD_LINE3,"Waiting Start");
until(ButtonPressed(BTNCENTER, false)==1);
ClearScreen();
}
strMsg=NumToStr(iPower);
strMsg="Power Way="+strMsg;
TextOut(0,LCD_LINE2,strMsg);
OnFwd(OUT_A,iPower);
}
}
剛好看到這篇實在太好了,最近在寫關於讀取按鈕的程式,NXC好像沒支援事件驅動,寫起來有點不太習慣
回覆刪除能夠幫的上忙真好.....大家互相交流
回覆刪除只能用Pressed嗎? 按下去再放開的要如何寫
回覆刪除