CodeZine(コードジン)

特集ページ一覧

マジカルボックスのプログラムを読み解く 1

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/11/27 00:00

ダウンロード サンプルソース (44.7 KB)

目次

ソースプログラムを手に入れよう

 では実際のプログラムを見ていきましょう。ソースプログラム一式はフォルダごと圧縮したものをここから (リンク)ダウンロードしてください。実行ファイル形式になっています。これまで同様、D:\mspoon に展開したとして以下説明を進めます。ファイル実行すると展開されて以下のようなフォルダ構成ができあがります。

D:\mspoon
  +-magbox
      +- apl
      +- com
      +- drv

 フォルダmagboxが、開発環境のルートです。ここにはワークスペースファイル5rules.prw、5rules.prjや、Appliletの保存ファイル5rules.prxがあります。

 その下には3つのフォルダがあり、aplは構造図でのアプリケーションに相当するファイル(ソフトウェア部品)があります。comには共通ヘッダファイルがあります。ここにはプログラム全体で共通に使う#define設定などが記述してあります。

 drvはデバイスドライバです。Appliletが生成したものを元に、マジカルボックス用に構造図にあるソフトウェア部品を追加しています。

 以下、内容の説明を行いますが、記事内にリストは掲載しません。別途エディタソフトなどで対象ファイルを開いて読んでください。その際、行番号を表示できるエディタだとより読みやすいです。

プログラムを読んでみよう① ―― まずはmain.cから

 main()では、全体の処理の流れを記述しています。まず、全体は14行目のwhile()文で無限ループになっています。これにより永遠に処理が繰り返されます。15行目からが一連の処理で、まずLEDを全消灯します。17行目で呼んでいるMeasureIntervals()が、最初4回スプーンを打つ際の間隔計測を行う処理です。途中でスプーン打ちが途切れるなどの異常があると、エラーを返すようになっています。これは19行目のif文で判断しています。エラーがなければ20行目でSampleHits()を呼びます。この関数は命令コードのサンプリングを行う処理です。ここでも異常があった場合はエラーが返ります。正常にコードが取得できた場合は、22行目でSendCode()を呼んでパソコンに命令を送信します。その後1秒待って、再び同じ処理を繰り返します。

 途中でエラーがあった場合は、26行目や30行目に処理がいって、DispError()という、エラー表示をする関数を呼びます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

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

もっと読む

著者プロフィール

  • 舘 伸幸(タチ ノブユキ)

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

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5