100円ショップ ミニミニスピーカのオルゴール化 (その2)
前回の記事の説明図にありましたように、作りは2つの処理系からなっています。
・メインループ処理:
20us周期でループし、H幅とL幅で指定された周波数と強さでPWM波形をひたすら出力する。
(ハードでPWM機能が有るマイコンならこれはハードにおまかせにできます。)
・インターバルタイマ処理:
16msに一回メインループから抜け出して、エンベロープパターンと楽譜に合わせてH幅とL幅を指定する。
(普通はタイマー割込みでやると思いますが、今回使った12F509には割込み機能が存在しないので、上の図のようにメインループから分岐するようにしています。)
あとは楽譜データとエンベロープパターンをデータとして用意すればオルゴールが完成します。お試し用に今回のソフトのHEXファイルを公開いたします。
ハードは簡単ですので(100円スピーカみたいな小さなケースに組み込もうとしなければ)、ブレッドボード等で簡単に用意できると思います。
明日から3,4日不在となります。その間更新とコメントへのレスが遅れますのでご承知置きください。
それでは今回は以上です。
コメント