プログラムを書く
練習プログラムは、main.cに書きます。ソース・ファイルのmain.cをダブルクリックするとmain.cの編集ウィンドウが開きます。冒頭にコメント文がたくさんありますが、これはとばして、ファイルの末尾に初期のサンプル・ソースが記述されています。
void main( void )
{
/* TODO. add user code */
while(1){
;
}
}
これは以前の連載記事「ハードウェアの話とコードの生成」でも登場しました。もうこのプログラムはもう読めますね。はい、無限ループが記述されています。今回の練習プログラムでも、最後は無限ループにする予定ですから、これはそのまま使いましょう。そして、今回やりたい内容は/* TODO. add user code */を消して、そこに記述します。
/* TODO. add user code */は残しておいてもかまいません
LEDの全消灯
まず最初にやることは、LEDの全消灯です。以前の連載記事「ハードウェアの話とコードの生成」にも出てきましたが再度掲載します。各LEDはそれぞれ表1のようにポートに接続されています。各ポートを1にすると点灯、0にすると消灯です。
| D7(赤) | P123 |
| D6(赤) | P45 |
| D5(赤) | P130 |
| D4(赤) | P23 |
| D3(緑) | P22 |
これをプログラムに書くと、以下のようになります。
void main( void )
{
P12.3 = 0 ;
P4.5 = 0 ;
P13.0 = 0 ;
P2.3 = 0 ;
P2.2 = 0;
while(1){
;
}
}
あれ?P123はP12.3なの?と思った方は、もう一度「ハードウェアの話とコードの生成」を読み直してみてください。P123は実際はポート12の第3番目の端子なので、プログラムではP12.3という記述をします。他のポートも同様です。
スプーンの音待ち
次に、スプーンの音待ちです。これは少し前に説明した通りです。P30が1の間待ちましょう。
void main( void )
{
P12.3 = 0 ;
P4.5 = 0 ;
P13.0 = 0 ;
P2.3 = 0 ;
P2.2 = 0;
while( P3.0 == 1 ){
;
}
while(1){
;
}
}
LEDを点灯
最後に、音待ちループを抜けたときにLEDを点灯させる命令を書きます。D7を光らせる場合は、P123ですから以下のようになります。
void main( void )
{
P12.3 = 0 ;
P4.5 = 0 ;
P13.0 = 0 ;
P2.3 = 0 ;
P2.2 = 0;
while( P3.0 == 1 ){
;
}
P12.3 = 1 ;
while(1){
;
}
}
これで、当初の目的の、「スプーンを叩いたらLEDが点灯する」動作をするはずですね。長くなってしまいましたので、今回はここまでにします。
もうシミュレータも実際の基板へのプログラムの転送方法もこれまでにやりました。自信のあるひとは、以前の記事を参考に、今回作ったプログラムがうまくいくか試してみてください。ひとつヒントを書きますと、シミュレータでは超音波マイクはありませんので、かわりに押しボタンスイッチである(ボタン)を使います。
次回はこれらの解説と、もうひとつのwhile文であるdo~while文を学びます。それではまた。
