[戻る]
過去ログ [ 0001 ]
過去ログ:     ワード検索: 条件: 表示:

タイトル
記事No
投稿日
投稿者
参照先
デバック中に強制停止
492
: 16/02/22-15:30
smo

PIC24F64にてI2Cスレーブ通信を実装しようとしています。
しかしデバック中に意図せず強制停止がかかってしまいます。
(実際に製品として動作させてもリセットがかかる)

この時、Debugger Consoleの表示を確認すると以下のような
メッセージが表示されています。

__DefaultInterrupt,.isr,.isr()@Compiler.generated.location:0x2a2

I2Cの割り込みを動作させるとこの現象が起こってしまうのですが
原因がわかりますでしょうか。

・開発環境
MPLAB X IDE v3.10
・コンパイラ
XC16
・エミュレータ
PICkit3
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: デバック中に強制停止
495
: 16/02/25-17:02
smo

お世話になります。
情報が少なくて申し訳ありません。

結果として問題は解消されました。

割り込みはタイマとI2Cの2種類を使用しており、I2Cの方の
優先度を高く設定しておりましたが、どうやら片方の割り込みを
使用しないようにしたところ上記問題は発生しなかったため、
試しに割り込みのネスティングを無効としてみました。

これにより現象は発生しなくなったのですが、要するに多重
割り込みが影響していると認識であっていますか?
しかし、この設定ですとI2Cのデータ取得でまれにエラーが発生して
しまい、あまり好ましくありません。やはりネスティングを有効と
しておきたいのですが何かよい方法はありませんでしょうか。

初歩的な質問でしたら申し訳ありません。
ご教授よろしくお願いいたします。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
常識的設計
496
: 16/02/26-22:19
なのるほどではない

常識的に考えて使い物にならない割り込みネスティング機能が実装されているとは思えません
処理の詳細は各プロセッサ(の設計)により異なるので、それに合わせてコーディングしなければなりません
優先度の高い割り込みの処理から戻った時に、ペンディングされた優先度の低い割り込みの処理がどうなるか・どうするかが異なります
必ずしも勝手に・自動的に次々と処理が進むわけではありません
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: 常識的設計
497
: 16/03/01-10:26
smo

回答ありがとうございました。
おっしゃるとおりと思います。

renesas系のマイコンを使用することが多く、PICに携わるのが
初めてでありましたので、戸惑う部分が多々ありました。

今回に関して言えば、PICで行なう制御自体は複雑なものが
ありませんのでネスティング機能の制御で処理したいと思います。

ありがとうございました。
▲pagetop

- WebForum -