割り込み処理について
初心者です。
AVRマイコンの割り込み処理について質問させて頂きます。
INT0割り込みの割り込みが入ったら、割り込みルーチン中の他の割り込みを許可し、かつINT0の割り込みを禁止したいのですが、下記ソースで問題はありませんか?
INT0割り込みが終了して、メインルーチンに復帰した直後にINT0割り込みを許可したいのですが、下記ソース(1)で問題はありませんか(メインルーチンに復帰した直後に許可したいのですが、方法がわかりません)?
ISR(INT0_vect,ISR_NOBLOCK)
{
int0割り込み禁止
・
・
・
・
(int0割り込み要求フラグクリア) ・・・・(1)
(int0割り込み許可) ・・・・(1)
}
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
初心者なら、マイコンのマニュアルを見てプログラムできるようになる練習をすることです。
URLに個別の割込みマスクとretiでの動作等書かれています。
・SREG ($3F) : Status Register
bit7-I : Global Interrupt Enable
すべての割り込みを可能にするにはこのビットを1にする必要があります。割り込みがかかるとクリアされ、割り込みルーチンの終わりでRETI命令がかかると同時に再びセットされます。CEI,SEI命令でクリア,セットできます。
にあるように、基本的にはAVRの割込みモデルは多重割込みでない対応としているようです。
これを
>割り込みルーチン中の他の割り込みを許可し
ということなので、多重割込みの対応をしたいようですが、多重割込みについての問題点等
検討されているでしょうか。たとえば、多重割込みでは何重の多重割込みを想定して、それに必要なスタックサイズは検討されていますか?
されているとして、以下のようになると思います。
ISR(INT0_vect,ISR_NOBLOCK)
{
int0割り込み禁止
・SREG ($3F) : Status Register bit7-I : Global Interrupt Enableを1にする。
(これで割込み許可になる。もともと他の割込みは許可されているものと考えています。)
・
・このへんは他の割込みが許可状態。
・
・
・SREG ($3F) : Status Register bit7-I : Global Interrupt Enableを0にする。
(int0割り込み要求フラグクリア) ・・・・(1) これは不要と思います。(理由)
(int0割り込み許可) ・・・・(1)
}
理由:
・割り込みフラグは割り込みが起こったときにセットされ、割り込みハンドリング時に自動でクリアされます。割り込みをマスクしていた場合にはフラグは立ったままとなります。
参考URL:http://ww2.tiki.ne.jp/~maro/AVR/programing/index …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# 配列の初期化についてです。 int 例のプログラムで int x[5]={1,2,3,4,5}; x 1 2022/05/29 15:00
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- 教育ソフト・学習ソフト vbsで分割した値をそれぞれの変数に 1 2022/10/17 19:52
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- 出会い・合コン 街でいわゆるナンパするときに、可愛い子とそうでない子がいて、男の子が可愛い子に声かけると何故かその隣 4 2022/11/17 11:24
- 簿記検定・漢字検定・秘書検定 日商簿記2級の商業簿記の新株発行(増資)について質問です。 今、日商簿記2級の受けようと独学で宅建勉 1 2022/07/30 09:45
- SoftBank(ソフトバンク) ソフトバンクエア 5 2022/08/26 13:32
- その他(税金) フリーランスの税金。どのくらいの割合で計算していれば見込み手取り金に余裕がありますか? フリーランス 5 2022/11/09 05:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スーパーのレジで並んでいたら...
-
CPUの処理量を減らすコーデ...
-
PICでタイマー割込み(mikroC V...
-
C言語について(PWM)
-
PICの割り込み機能
-
割り込み処理のシミュレート
-
picタイマ0割り込みについて
-
電車で待機列の割り込みについ...
-
PICで既定の時間数ループを...
-
割り込みについて
-
割り込みの衝突
-
音声ファイル再生時のフリーズ
-
アセンブラのタイマー割り込み
-
ショッピング
-
H8マイコンで割り込みが任意の...
-
順番待ちで並んでいる時、割り...
-
VB6でSendKeyを利用したTab移動...
-
駅のトイレでナイチンに邪魔さ...
-
Macターミナルで実行中のプログ...
-
緯度、経度の 10進法と 60進法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
インバウンドで迷惑している人...
-
pic 複数の割り込み関数 切り分...
-
スーパーのレジで並んでいたら...
-
ショッピング
-
Excelでタイマーの一時停止する...
-
電車で待機列の割り込みについ...
-
CPUの処理量を減らすコーデ...
-
C言語でPICマイコン開発
-
【組込み】割り込み中のstatic...
-
Amazonfireタブレットにわから...
-
マイコン C言語 割り込み処理...
-
USB機器からのデータ受信による...
-
一定時間操作がなかったら、と...
-
VB.net 割り込みの禁止
-
ウォッチドッグタイマ(WDT)の...
-
電車乗車時、並んでいるのに割...
-
USJでの割り込み
-
VB6でSendKeyを利用したTab移動...
-
PICでのプログラムによるチャタ...
-
割り込み中に例外異常
おすすめ情報