ひやしたと申します。 >ありがたいが、自分で考えるより他人がつくったものを使えば >時間短縮するんじゃない? 間違ってはいないと思いますが、正攻法では無いと思います。 CPUと動作周波数と遅延時間まで指定されると、 全く同様の環境で同じ遅延時間を作成した人の存在確率が疑問です。 回答を得られる確率が低ければ時間短縮以前の問題だと(私は)思います。 質問ですが、許容誤差はどれくらいでしょうか? オシロスコープはお持ちですか? もしもオシロスコープを持って居られるなら、関数呼び出し時に 任意のIOポートを立てて、適当なループによるウェイトを持った関数を通過して、 関数から出た時にIOポートを下げるようなルーチンを作ってカット&トライするのが 手っ取り早いと思います。但し、ROM実行時に合わせてトリミングするのは大変かも。 (1usの場合) 1msの場合も同様にカット&トライでいけると思いますが、 たろすけさんの案の通り、タイマーを使う方が簡単な気がします。 私ならきっとポーリングでやるでしょう。 これならROM実行時もあまり気にすることなくいけそうですね。 残念ながら私は3052を扱った事が無いので、 そのものズバリの遅延ルーチンをご提示できませんのが残念です。 3048/20MHzでの例(誤差は大きいです)なら提示可能なのですが。 貴兄のスキルが全くわからないので、失礼な事をご質問しているのかもしれませんが、 遅延ルーチンを「どう作れば良いのか?」という質問では無いのですよね?