|
カテゴリ:NXT
さて、前回の続き
やっぱり、モーター関係の関数をラップして使った方がよい みたいなので、早速マクロ化の修正 -------------- //Motor output #define OUT_LEFT OUT_A #define OUT_RIGHT OUT_C #define OUT_BOTH OUT_AC //Motor direction #define DIRECTION -1 //speed #define SPD_TRACKING 50 #define SPD_SLOWMOVING 30 //Motor Function Macro #define OnFwdDir(a,b) OnFwd(a,(DIRECTION)*(b)) #define OnRevDir(a,b) OnRev(a,(DIRECTION)*(b)) task main() { while(true) { OnFwdDir(OUT_LEFT, SPD_TRACKING); OnFwdDir(OUT_RIGHT, SPD_TRACKING); Wait(1000); OnRevDir(OUT_BOTH, SPD_SLOWMOVING); Wait(1000); Off(OUT_BOTH); } } -------------- OnFwdDir、OnRevDirというマクロを2個定義して それぞれのモーター関数の速度指定の所に方向指定の演算を追加します 通常マクロは全部大文字にするのですが、 この場合は関数のラップなので、小文字も使用しています。 1パスのCコンパイラだと関数名を同じ名前にする事も可能なのですが、 NXCだと怒られました^^; #defineの定義順がおかしくても、正常にコンパイル出来るあたり 数パスのコンパイラのようです。 お気に入りの記事を「いいね!」で応援しよう
Last updated
2009.07.06 22:34:35
[NXT] カテゴリの最新記事
|