ここからライントレーサーのプログラムを作るために
少しずつ課題をクリアしていく、という感じで流れを説明していきます。
とはいっても、いくらプログラム(ソフト)が正しくても、回路(ハード)がダメであれば動きません。逆もまた然りです。
絶対に正しいと思うのに思い通りに行かないときは回路も疑ってみましょう。勿論周りに聞くのも手です。
まず最初は、「LEDを3つとも光らせる」です。
流石に参考書レベルに書くつもりは無いので、 SHマイコンの参考書やSHマイコン入門サイト等 で調べていることを前提に進んでいきます。
また、ちなみに16進数と2進数と10進数の変換は出来ることを前提としています。 まず、点灯したいLEDがSHのどのポートにつながっているかを確認してください。 今回はポートEの0,1,2BITについている時を例に説明します。
まず、ポートE(PE)を出力に設定します。
出力と入力の違いは、
出力…ピンの電圧(5Vか0Vか)をプログラムで決定できる
入力…ピンの電圧をプログラムで確認することが出来る
という感じです。
良く判らなくても、
LEDやモータを使うときは出力、スイッチを使うときは入力。
という認識でOKです。
PEは0~15の16Bitのポートです。
PFC(ピンファンクションコントロール)では「PFC.PEIORL」に値を代入する事によって入力と出力を選ぶことが出来ます。
具体的には、箱があって、そこに1を入れるか0を入れるかによって
PEを出力(1)に設定するか入力(0)に設定するかを選択できます。
今回は0,1,2Bitを出力にしたいので
PFC.PEIORLには2進数で000000000111と代入すればいい事が判ります。
ちなみに、1を入力するBITは右から0,1,2Bitとなっています。
2進数で111(0は気にしないから)というのは16進数で7ですね。
よって
PFC.PEIORL.WORD = 0x0007;
と書くと、0,1,2BITは出力、それ以外のポートEのピンは入力なります。 0xというのは16進数で、という意味です。
次に5V出力をします。
出力に設定したことでプログラムで5Vか0Vかを選べるようになりました。
実際に選ぶには[PE.DRL.WORD]もしくは[PE.DRL.BIT.B(ビットの番号)]に値を代入します。
2つの違いは、WORD単位(4桁)で書き込むか、BIT単位(1桁)で書き込むかの差です。
考え方はPEIORLと同じで、1を代入すると5V、0で0Vです。
そして、LEDのつながっているポートを5VにすればLEDは光るはずです。
ココから先は自分で考えてみてください。(本も参考にするとよしです)
それが出来るようになったら、今度はモータドライバ(2本並んでいる長細いやつ)に出力してみてください。
ポート番号は調べましょう。