こんにちは。
本日からプログラミングの続きです。
Step.3
int i; int state_r, state_c, state_l;
初めのほうにでてくる↑のintはunsignedが付いていないので+だけでなく-も含みます。
intは32bitの整数の型で、CPUによってbit数が変動する型なのは以前習いました。
intのあとに書かれているiやstate_r, state_c, state_lは変数です。
RAMは書き換え可能の記憶装置です。
ROMは書き換え不可の記憶装置です。
RAMには番号(アドレス)のついた引き出しがあり、番号に対して中身が書き換え可能になっています。
ヒトが変数を定義(好きな名前を付ける)とコンパイラーはCPUが分かるように割り当てをしてくれます。
CPUは訳すと中央演算処理装置といい、名前の通り計算をしその結果(データ)のやりとりをしています。
計算は+、-、×、÷をしています。いわゆる四則演算ですね。
CPUにはRAM、ROMやI/Oなどがぶら下がっています。
I/OとはInput/Outputのことで、ここにLEDやスイッチが繋がっています。
PFC.PEIORL.WORD = 0x004f; PFC.PBIORL.WORD = 0x0000;
の0x004fは16進数なのでこれを2進数にすると0100_1111になります。
1になっているbitが出力設定となり、PED0~3(つながているのはLED)の端子が出力設定され、1の時にLEDが点灯します。
まずプログラムを何もいじらずコンパイルしPi:Co Classic2に転送します。
すると左(Pi:Co Classicの後ろを自分の方に向けたとき)の赤色のスイッチを1回押すと
左のLEDが点灯し、2回目押すと消えます。
真ん中の黄色のスイッチを1回押すと真ん中の2つLEDが点灯し、2回目押すと消えます。
右の青色のスイッチを1回押すと右のLEDが点灯し、2回目押すと消えます。
次にCPU横の二色発光のLEDを半田付けしました。
このLEDを黄色のスイッチで点灯、消灯するようにします。
{ LED1 = LED2 = 0; }else{ LED1 = LED2 = 1; }
を以下のように書き換えます。
{ LED1 = LED2= LED4 = LED5 = 0; }else{ LED1 = LED2 = LED4 = LED5 = 1; }
黄色のスイッチを1回押すと真ん中二つのLEDと二色発光のLEDが点灯、2回押すとこれらのLEDが消灯するようになりました。
次に点灯は先ほどのまま、二色発光のLEDの青色を赤いスイッチを2回目押したとき
赤色を青いスイッチを2回押したとき消灯するように書き換えます。
{ LED3 = 0; }else{ LED3 = 1; }
を以下のように書き換え
{ LED3 = LED4 = 0; }else{ LED3 = 1; }
次に
{ LED1 = LED2= LED4 = LED5 = 0; }else{ LED1 = LED2 = LED4 = LED5 = 1; }
を以下のように書き換え
{ LED1 = LED2 = 0; }else{ LED1 = LED2 = LED4 = LED5 = 1; }
最後に
{ LED0 = 0; }else{ LED0 = 1; }
を以下のように書き換え
{ LED0 = LED5 = 0; }else{ LED0 = 1; }
コンパイルし、転送します。
プログラム通り点けたり消したりすることができるようになりました。
したいと思ったように動いてくれると嬉しいですね♪
最後に本日のオフショットです。