======defineの使いどころ====== ここではdefineの使いどころについて書きます。\\ ライントレーサくらいだとそうでもないですが、\\ おそらく、マウスともなるとdefineを使いこなさないと\\ プログラムを書ききれないんじゃないかなぁと思います。\\ \\ 例によって構文とかは適当に調べてください。\\ \\ 定義文としてのdefineを説明します。\\ マクロは使いたいときに使えばいいんじゃないかなぁと。\\ =====定数を定義しておく===== プログラムの中に定数を書く事があると思います。\\ ライントレーサをPWMで動かしている場合、ifやswitch文の中で変数に\\ if(~~){ speed_right = 500; speed_left = 900; } のように定数をそのまま書いているんじゃないでしょうか。\\ 一箇所ならまだ良いのですが、おそらく上手い具合に走らせるには\\ おそらく、5箇所くらい(もっと?)記述する必要が出てきます。\\ \\ \\ さらには、色々と調整しないといけないので、書き換えが非常に面倒です。\\ そんな時には、\\ #define SPD_LOW 200; //遅い #define SPD_MED 500; //中くらい #define SPD_HI 800; //速い … … if(~~){ speed_right = SPD_MED; speed_left = SPD_LOW; } if(~~){ speed_right = SPD_HI; speed_left = SPD_HI; } … … のようにしておけば、上の3つを弄るだけで調整ができます。\\ ついでに、プログラムの意味がわかりやすくなります。\\ ※何をdefineしたか忘れると悲惨なので注釈をつけておいたほうが良いです。\\ \\ \\ \\ =====ポートやレジスタなどを定義しておく===== P8.DR.BIT.B1 = 0; なんて一々書くのが面倒臭い事がありますよね。\\ ついでに、どのポートに何が繋がっているのか忘れてしまうと、\\ 配線を確認したり、色々と面倒な作業があります。\\ そこで、\\ \\ #define LED0 P8.DR.BIT.B0 //左LED #define LED1 P8.DR.BIT.B1 //中LED #define LED2 P8.DR.BIT.B2 //右LED #define MOTOR_R_1 P3.DR.BIT.B0 #define MOTOR_R_2 P3.DR.BIT.B1 #define MOTOR_L_1 P3.DR.BIT.B2 #define MOTOR_L_2 P3.DR.BIT.B3 \\ \\ のようにしておくと配線を忘れてしまっても、\\ それらしい名前でdefineしてあるのでプログラムを書く事ができます。\\ 当然、ソースコードも読みやすくなります。\\ \\ \\ ので、適切な名前でdefineして使うようにしましょう。\\