FC2ブログ

サイコロタイマーが完成したので

以前、製作中に報告した電子サイコロのプログラムが完成しました。
最終的に3分と5分のキッチンタイマーを一緒に組み込みました。

以前にも書いたかもしれませんが、元々このプログラムの核となっているのは、
Pic12f683用に作った汎用的な各種割り込みサブルーチン群です。
使用している割り込みのというのは、

 (1)音楽を出すために使用する、周波数と音の長さの2つの割り込み
 (2)スリープ解除のためのポート変化割り込み
 (3)キッチンタイマーのための1秒生成割り込み

割り込みが起こると、一つの飛び先(0x04番地)にしかジャンプできません。
飛び先のプログラムの中でどの割り込みであったのかを判定して処理する
わけですが、音楽を出すための割り込みの場合には複数の割り込みを同時に
許可しているので、割り込み要因であったイベントに対して処理を行った後、
割り込み処理中にもう一つの割り込みが起こっていたのかどうかを見て、
必要であればそちらの処理もすることになるためにどうしても複雑になって
しまいます。
この手の処理の仕方はI2C関連のプログラムでも同じようにしています。

アセンブラによるプログラムはなかなか時間がかかってしまいますが、
まあ趣味的な感覚で作っているので苦にはなりません・・・

昨日本屋に行ったら、最近PICのアセンブラの本が新たに出たようです。
Picの出始めの頃はアセンブラ関連の本が多かった記憶があるのですが、
最近はC言語ばかりだったので、思わず中身を立ち読みしてしまいました。
中身を見ると、どうしてもソースプログラムが長くなってしまうので、
説明のための本というよりはプログラム集のようでしたが、まあ
そうなってしまうのは仕方がないのかなと思いました。

動いている様子をYoutubeにアップしました。
演奏させる音楽は、ちょっと訳ありで変なものを入れました。
森鴎外の作詞で古いものなのだそうです。
動画はここをクリックすると見ることができます。


2013_0130_1.jpg






この記事へのコメント:

管理人のみ通知 :

トラックバック: