« LED チカチカまでが結構長かった(その2) | トップページ | LoveAmp作ってみた »

2010年5月24日 (月曜日)

LED チカチカまでが結構長かった(余談)

昨日のエントリで書き忘れていた事があったので余談として書いておきます。

6月号のHEWで動作させてみるサンプル「LEDチカチカ」はタイマ割り込みを使ったプログラムです。これはこれで十分に初歩的なものなのですが、マイコンの世界に初めて入ってきた方にとってはこれでもちょっと「?」な世界だったりするものです。

まぁ、タイマのハンドラはJavaやVisualStudio.NETあたりから来た方で、Timerクラスなんかを使った事のある方であればイメージはそんなに難しくなくて、「main関数の冒頭の部分でこの命令を実行する事によって、この関数(ハンドラ)が1秒置きに実行されるんですよ」でほぼ納得できると思うのですが、I/Oポートの値を設定する事によってLEDがOn/Offする部分が意外とイメージしづらいみたいです(と言うか、最初は自分がそうでした。負論理でビットOnでLED消灯って何それ!って本当に思いましたからw)。

でもまぁ、ここもI/Oポートへの操作をラッピングしたled_on()とかled_off()とかの関数を作る事でだいぶイメージがしやすくなるみたいですね。

んで、そこにさらに輪をかけて割り込みを使わないLEDチカチカプログラムをちょっと載せてみようかなと思います。中で何も行わないforループについて賛否両論あるかと思いますが、まずは直感的なイメージが大事だと思ってます。誌面に掲載の割り込みを使ったプログラムが上手く動かなくて、「ちょっと挫折気味」な方がいたらこのプログラムで「とにかくマイコン基板とのコンタクトは取れているんだな」と安心していただけたらなと思います。

Led_2

はい、これがプログラムです。って、画像ですがね。ま、簡単なんで練習だと思って手で入力してみてください(ファイルはmain関数のある、SH7262_LED.cです)。既存のサンプルの一部(タイマの設定と割り込み発生許可の部分)をコメントにして、後はLEDの点灯/消灯関数のプロトタイプ宣言を追加しています。無限ループ内は

ちょっと時間を空けてLED点灯、ちょっと時間を空けてLED消灯

と言う定番な処理です。クロックが結構早い(インターフェース誌最速!は伊達じゃない!w)ので3000000回なんてベラボーなループ回数になっているのはご愛嬌です。

これが無事に動けば多分、タイマ割り込み使用版の方は設定のどこかがおかしいと言う事になります。マイコンとのコンタクトが取れた事に安堵しつつ、じっくりとプログラムを見直してみてください。

さて、世の中ではすでに液晶繋いだり、音出したりしている方もいらっしゃるようですね。こちらもじっくりとではありますが、色々触っていこうと思います(少なくとも液晶は繋いでみるつもり)。

|

« LED チカチカまでが結構長かった(その2) | トップページ | LoveAmp作ってみた »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2790/48450315

この記事へのトラックバック一覧です: LED チカチカまでが結構長かった(余談):

« LED チカチカまでが結構長かった(その2) | トップページ | LoveAmp作ってみた »