松林です。 ひやした様 イエローソフトのコンパイラで試して頂き,ありがとうございます。 hamayan様 コメント入りのアセンブラの丁寧な解説ありがとうございます。 たろすけ様 全パターンをROM上に書く方法でやっています。 DMAについては,私の技量不足で,とりあえず試せません。 今後勉強してみます。 小坂様 おかげさまで,さらに速度が上がりました。 mainの中のループで,LEDをピコピコしていますが,その周波数が 少し上がるのが確認できました。 皆様から頂いた,オプチマイズの手法により,なんとか 500*64Hzの割り込みがOKになりました。波形も500Hzが出ています。 (C上ではこれ以上のオプチマイズは限界と思います。) 現在,mainのループが8Hzくらいで回るようになったので, プレステのゲームパッドの状態読み込みも少しタイムラグがありますが, なんとか使えるレベルです。 古い方の割り込みルーチンと,新しい割り込みルーチンですが, 古い方も500*64Hzの割り込みには余裕で対応しているわけではない ことがわかりました。けれども,新しいルーチンより古い方が 早いのが,mainループでのLEDの点滅具合でわかります。 ステート数の僅かな違いでも,1秒間に32000回の割り込みでは, 大きく体感速度に関係してきそうな気がします。 古い方が新しい方より早いのは何故か? を時間の許す範囲で 追求してみます。 曽田様 割り込み回数を減らす提案ありがとうございました。 正弦波の分割数を64->32に変更することも考えています。 荒くなると,波形がカクカクしますので,その波形で駆動される 圧電素子(100V駆動!)に与える影響を調べないといけませんが, 3052Fマイコンへのチェンジも含めて 近い将来やってみることになると思います。 皆様,ありがとうございました。 2日間費やしましたが,おかげさまで何とか使えるレベルの物が できました。また気づいたことがありましたら,ご教授ください。 よいお年を。 (今年も大掃除ができませんでした。 旧来手法による年に一度の生存証明もまだ書いてない。) // Katsushi MATSUBAYASHI matsu@xxxxxxxxxxxxxx // Associate Professor, Tokyo National College of Technology