SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

たった5つのルールではじめるC言語開発

繰り返し


プログラムを書く

 練習プログラムは、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にすると消灯です。

表1:LEDの接続ポート
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文を学びます。それではまた。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
たった5つのルールではじめるC言語開発連載記事一覧

もっと読む

この記事の著者

舘 伸幸(タチ ノブユキ)

NECマイクロシステム株式会社 勤務NPO法人SESSAME 所属開発ツールのソフトウェア開発を経て組込みソフトウェア開発に従事。プライベートにも半田ごては手放さない。2006年からSESSAME に参加。若い世代に物を作る楽しさを伝えていきたい。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3729 2009/03/26 18:03

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー