0
私はタイマーのISRでUARTを使いたいので、msp430でネストされた割り込みを有効にしたいと思います。 ご協力いただければ幸いです。msp430g2553でネストされた割り込みを有効にするには?
私はタイマーのISRでUARTを使いたいので、msp430でネストされた割り込みを有効にしたいと思います。 ご協力いただければ幸いです。msp430g2553でネストされた割り込みを有効にするには?
msp430
マイクロコントローラが割り込みハンドラ機能の実行を開始しようとしているときは、最初に、ステータスレジスタr2
のビットであるグローバルな「割り込み許可」フラグを無効にします。これは事実上、デフォルトで割り込みネストを禁止します。
この問題を回避するには、割り込みハンドラ機能の開始時にレジスタフラグを1に戻して割り込みを有効にします。構文を簡素化するために、このためeint
指示実際にあります:
asm("eint");
は通常、あなたがアセンブリコードを書く避けましょうemnabeためのコンパイラ固有のマクロもあります。これは、GCCとIARの両方で動作するはずです:
__enable_interrupt();
(、ネスト割り込み乱用しないでくださいほとんどの場合、それのための必要は全くありません、それのために行くよりも、それはあなたのデザインを変更することがほぼ確実に、より良いアイデアです。 )