Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page

外部割込み中のタイマー割り込み処理

べあーと申します。

 

表題にありますように外部割込み中のタイマー割り込みの処理について教えて下さい。

ハード的な制限があり、外部割込みで行いたい処理をタイマーでポートのポーリングして状態をチェックしています。

このポーリングしているポートで状態変化があれば、直ちに処理を行わないとならないのですが、外部割込み中に

ポートの状態変化があった場合、外部割込み優先となりポートの状態変化による処理が後になってしまいます。

外部割込み中でもタイマー割り込みによる変化処理を優先して行う手だてはありませんでしょうか。

 

以上よろしくお願い致します。

  • チョコです。
    そのような場合には,多重割り込みを使うことになります。
    具体的には,タイマ割り込みの優先順位を外部割り込みの優先順位よりも高くしておいて,外部割り込み処理の中で割り込みを許可(EI();)してください。
  • べあーさん
    こんにちは、菅原です。

    ポートで状態変化があれば、直ちに処理を行わないとならない とのことです
    タイマ割込みで定期的に確認しているということは、タイマ割込み周期以内に検知できたらいいのですよね。

    まずは質問なんですが
    タイマ割込みの周期を教えていただけませんか

    あと、外部割り込みでどんな処理を行っていますか?
    タイマ割込みの周期よりも長い間かかっているというのも気になります。
    外部割り込みの処理時間を教えていただけませんか?
  • > 外部割込み中でもタイマー割り込みによる変化処理を優先して行う手だてはありませんでしょうか。

    割り込み処理のアチコチで頻繁にポートの状態をチェックするという方法もありますね。
    ※ オススメしません。
  • 割り込み処理の考え方がチグハグで、何をしたいのかが良く分からない。
    割り込み要因が発生したら直ぐに処理したいのに、タイマー割り込みで周期的にポーリングしたいなんておかしい。
    急いでいるのに、タイマー割り込みまで待ってるの?
    割り込み端子が1本しか無いなら、複数の割り込み要因のORを取って入れます。
    割り込みが入ったらどの割り込みか調べれば良い。

  • In reply to リカルド:

    外部割込みや、
    ポートの状態変化割込みの、
    処理を1uS以下でできるようにすれば、
    後は優先順位だけですから、
    特別な方法を考えなくてもよいのでは、
    直ちに処理をしないといけない、
    その直ちにが解っていないようで、
    どれぐらい許容されるのかによりますが。

Top Page [◀◀]  2   3   4   5   6   7   8   9   ... [▶▶Last Page