Kouhei Ito wrote [H8-ML(664)]: > メインプログラムはほとんどなくて、プログラムのほとんどが > 割り込み処理と言うのも少なくないのです。 > > 私が考えつく問題としては、Aと言う割り込み処理が長くなればその間は > 他の割り込み処理は出来なくなりますので、あまりいいことではありません。 御意。 > それに、プログラムの大部分が割り込み処理とでメインは無限ループ > (けっこう私のプログラムにはあります。) > というのもエレガントでないかなと思ってます。 迷信ですな。 > やはり、割り込み処理は短くしたほうがよいような気がするのですが > 皆様方がプログラムする際はなにかそのための定石のようなものがあるん > でしょうか? 処理そのものが短くできない場合は 分割します。 出力までの遅れ時間はどれだけ許容するか? 例えば 処理A:1ms毎に実行、遅れ許容10ms 処理B:1ms毎に実行、遅れ許容1ms 処理C:10msごとに実行、遅れ許容1ms であるなら 処理Aを10個の細分処理A'[0-9]に分割して 1ms毎に順番に処理していく。 処理Bは1ms毎に処理していく。 処理Cは10ms毎に処理していく。 遅れ許容は 押しボタンの入力とりこみ : 10ms LEDの点灯 : 10ms リレー駆動 : 100ms PWMの制御 : 1ms という値で造ったことがあります。 -- 島本健郎