[Armadillo:01027] 1ms でのインターバル
Hiroshi Doi
email@hidden
2006年 5月 31日 (水) 18:43:02 JST
こんにちは、土居と申します。
MIDI を演奏させるためにティック・ジェネレータを実装しようとして
います。H8 マイコンでは 2ms 間隔でのインターバルタイマを利用して
いたのですが、標準の linux では 10ms 間隔の設定が限界ということで
何とかしたいと思っています。
てっとり早くやろうとして
for (;;) {
gettimeofday(現在の時間);
前回の結果と比較して 1000us 経過していたら任意の処理を実行
現在の時間を前回の結果として保存
}
という実装をしてみたのですが、きっちり 1ms 間隔となりません。
# 一定間隔で 1ms を大幅に超えます。
Google で検索したところカーネルに手を加えることで 10ms 間隔という
限界を 1ms 程度にすることは可能という記述を見つけたのですが、
その記述が対象としているプラットフォームが i386 だったので ARM では
どうなのか、またはカーネルに手を加える以外に方法がありそうならば
アドバイスしていただけませんか?
現在開発している対象は Armadillo-9 です。最終的には今度発売される
Armadillo-220 を考えています。
ちなみに、シリアルポートは 38400bps で出力して、別のマイコンにて
38400bps -> 31250bps 変換を行い更に RS232 から MIDI に変換します。
ですから Armadillo からは純粋に 1ms の解像度でシリアルポートに対して
出力できれば OK です。
--
Hiroshi Doi
armadillo メーリングリストの案内