樂高 NXT 本體上有四顆實體按鈕:左、中 (Enter)、右、下 (Exit)
這幾顆按鈕在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);
}
}