• 締切済み

割り込みの衝突

現在、マイコンにてPWMを多数本出力させようとしています。 PWMコントローラが内蔵されていないので、ソフトウェアで対応させるしかないのですが、プログラムを組んで動作させると、どうも割り込み同士が衝突・干渉し、想定している出力とは違うものとなってしまいます。 「マイコンを変える」ことは、事情柄行えません。 皆さんは、割り込み同士が衝突してしまう場合等、どう対処されていますか? それぞれの割り込み周期が同じか整数倍等だと、衝突は発生しなくなりますか?

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.2

割り込み処理を極力短くする。 例えば、割り込みルーチンでは、フラグをセットするだけで即リターンする。 で、メインループでフラグをみて、Outputを反転させるとか、カウンタをリセットするとか、実際の処理を行う。 まあ、これでも、小さな誤差は避けられませんが。

回答No.1

複数のPWM出力したいだけなら、タイマー割り込み1本でソフト処理したらどうでしょう。

関連するQ&A