« ショウガ定植 | トップページ | 環境に悪い肥料 »

2018年6月 5日 (火)

TRONで音楽

STM32でTOPPERS/ASPカーネル、簡単に言うとARMでTRONを動かしている。
その上で動作するMusicDriverを作るのが最終目標だが、今のところ作り方がよくわからない。
タスクとして動作させてみたが、タスクだと割込み間隔が1msなので無理っぽい。
勝手にタイマを一つ奪って割込みルーチンを書いてみる。

STM32F401REだと、クロックが84MHzなので、PSC=840-1と設定する。
84MHz=84,000,000Hzだから、84000000 / 840 = 100000Hzでカウンタが進むことになる。
ラの周波数は440MHz、高いラだと×2、圧電ブザーをONとOFFするなら×2として、
圧電ブザーを1960HzでON/OFFするのにかかる時間は1/1960sec。これがカウンタ何回分なのかを数えると、

1/1960÷1/100000→100000/1960=104回

となる。圧電ブザーの音としてはちょうどいいペースかな。試しに発音するコードを書いてみるとイケる感じ。
このままでは処理が重いので、割込みルーチンをやめてPWMでスピーカをON/OFFしてみた。
CPUはスピーカのON/OFFから解放され、演奏時間だけを処理すればよくなった。
PWM可能なピンは複数あるから、三重和音なんかもできそうだ。
ここまではTRONを無視して単独でテストしたのだが、問題はTOPPERS/ASPカーネルで、どうやってレジスタを叩けばいいのかわからないこと。

« ショウガ定植 | トップページ | 環境に悪い肥料 »

電子工作」カテゴリの記事

コメント

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: TRONで音楽:

« ショウガ定植 | トップページ | 環境に悪い肥料 »

最近のトラックバック