スポンサーリンク


RAKUTEN

  • スポンサーリンク

« 100円ショップ ミニミニスピーカのオルゴール化 (その3:音質改善) | メイン | オシロが到着しました »

2010/07/01

100円ショップ ミニミニスピーカのオルゴール化 (その4:ちょっと解説)

 オシロの発送連絡がありましたので、多分明日には到着すると思います。楽しみですwink

   
 今回は昨日に引き続いて、簡単ですがPICによるオルゴールの1作目と2作目の違いについての説明図を用意しました。
Explain

 一作目との違いは、楽器の波形を一つ一つPWMで作りだすようにしていることです。波形は0〜15の数値で強さを表したデータを1波形16バイトのテーブルで用意しておき、それを周期に合わせて取り出すようにしました。それ以外の制御は一作目と同じです。

 お試し用にHEXファイルも開示いたします。

「PIC12F675MUSIC.HEX」をダウンロード

 和音もパートごとに波形を生成しておいて、最後に両方のPWMのパルス幅を加算すればできるはずなのですが、今回は処理が間に合わなかったので断念してしまいました。

 PWM用のハードのあるチップ(12F683等)だったらソフトの負荷が減るので和音もできたな、と思っています。実際にWEBをみると683で和音を出されている方もおられます。

 なお、ついでに今回使ったPIC12F675と12F509、それと使っていませんがさらに機能強化された12F683の比較表を用意しましたのでご覧ください。

Pics  

FLASHやRAMサイズの違いはまあいいとして、最初の509では表の中で赤字で書いたメモリアクセスの制限で苦労しました。
 
 特に困ったのが「サブルーチンが下位256バイトにしかおけない」点です。PIC12系はテーブルデータを扱う命令がなく、テーブルデータはプログラムカウンタの操作とRETLW命令によるサブルーチンからのリターン値の組み合わせで取得するようになっています。

 つまりサブルーチン機能にかかわるのでテーブルデータも下位256バイト空間にしか置けない、ということになります。いったい何を考えてこうしているのか。。。。

 今回使った675ではそういう制限による苦労が一切なく、最初からこっちにすれば良かったと思いました。

 
 普通こういう制限は概要仕様にはでてきませんので、メモリサイズや単価を見て509を買ってあったのですが、安いだけのことはあったようです。LED制御とかのちょっとしたことなら十分なのでしょうが、ある程度のデータを扱う用途には向いていないと思います。

 もし趣味で12F系をお使い予定の方がおられましたら、509はやめて675か683を選択されることをお勧めします。趣味用なら単価の違いもそれほど問題とならないでしょうし。特にオルゴールみたいな用途でしたらPWMのある683の方が良いと思います。
 

今回は以上です。

 

にほんブログ村 その他趣味ブログ 電子  工  作へ
にほんブログ村 ←記事が面白かったらクリックしてやってください。

トラックバック

この記事のトラックバックURL:
http://app.blog.ocn.ne.jp/t/trackback/240957/21720691

この記事へのトラックバック一覧です 100円ショップ ミニミニスピーカのオルゴール化 (その4:ちょっと解説)

コメント

コメントを投稿