SHOEISHA iD

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

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

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

コドモに伝える組込みソフトウェア開発

ハードウェアの話とコードの生成

LEDを点灯させる


生成されたコードに手を加えてプログラムを完成させよう

 Appliletでコードを生成したフォルダを開いてください。図22のようなファイル群ができています。この中のmain.cをテキスト・エディタで開きます。テキスト・エディタの代表的なものは秀丸エディタですが、なければWindows標準のメモ帳でもOKです。

図22:生成されたファイル。
図22:生成されたファイル。

 main.cを開くと、長いコメント文の最後に、以下のようなプログラムが記述されています。

void main( void )
{
	/* TODO. add user code */
	while(1){
		;
	}
}

 これがmain関数(メインかんすう)というもので、C言語で書いたプログラムで一番最初に実行される部分です。どんなに小さなプログラムでも、このmain関数は必ず存在します。関数の中には、

/* TODO. add user code */

 という文と、

while(1){
		;
	}

 というコードが記述されています。このwhile文については次回以降で説明します。この部分は無限ループになっていて、今回はとりあえず一種のプログラム停止みたいなものと解釈しておいてください。

 さてその上の文の部分は、コメントといって、プログラムに注釈を記述するためのものです。C言語では、/**/で囲まれた内容はコメントと解釈するきまりになっています。このコメントには、「ここにユーザ・コード、つまりあなたのプログラムを書いてください」という意味が記述されています。早速以下のように2行を追加してみましょう。行末の(セミコロン)を忘れないように注意してください。C言語では、実行文の行末は必ず;で終わるきまりです。

void main( void )
{
	/* TODO. add user code */
	P2.2 = 1;
	P4.5 = 1;

	while(1){
		;
	}
}

 P2.2 = 1;P4.5 = 1;が追加したプログラムです。記号は、代入文といって、左側の変数に右側の値を入れることを意味します。つまり、「P2.2=1;」は、P2.2という変数に1を入れることを意味します。

 あれ? P2.2とかP4.5って突然どこから出てきたんだろう? と思われるかもしれません。これは今回使用する78K0S用のC言語の特別な機能のひとつなのです。マイコンには今回使うポートをはじめ、さまざまな機能が内蔵されています。それらの機能は、SFR(Special Function register)と呼ばれる、専用の設定メモリを経由して制御することができるようになっています。このSFRにはそれぞれ固有の名前が付いていて、78K0S用のC言語では、そのSFRの名前を変数として記述することができるようになっているのです。

 もう一度、表1を見てみましょう。

表1:LEDの接続ポート
D7(赤) P123
D6(赤) P45
D5(赤) P130
D4(赤) P23
D3(緑) P22

 緑色のLED(D3)が接続されているポートは、P22でした。そして、赤色LED(D6)が接続されているポートはP45です。もう気づかれましたね。先ほど追加した実行文のSFR名ととても似ています。ただ少し違います。P22へのアクセスはP2.2 = 1となっていますし、P45はP4.5となっています。これは単に78K0S用C言語の記述のルールです。P22はAppliletの設定画面でもあったように、ポート2の2ビット目を意味しています、78K0S用C言語では、ポートのある1ビットを指定するときには、ポート名.ビット番号で記述するきまりになっているのです。なのでもし、D6の代わりにD5を点灯させたいときは、P130を1にすればよくて、P130はポート13の0ビット目なのでP13.0 = 1;と記述すればOKです。

 では、記述を追加して改造したmain.cを保存してエディタを終了しましょう。

次のページ
PM plusでコンパイルしよう

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

コドモに伝える組込みソフトウェア開発連載記事一覧

もっと読む

この記事の著者

舘 伸幸(タチ ノブユキ)

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3799 2009/04/03 11:17

イベント

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

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

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

メールバックナンバー