LPC11UXX外部アクティブレベル割り込み皆様、
#LPC11U35BFD# mcu を使用するときに、アクティブ レベル割り込みに関する問題が発生しました。コマンドを使用してEx-Interruptモードを制御し、トリガーします
同様の初期化コードでは、エッジ (上昇または下降) 割り込みとレベル割り込みは正常に機能しますが、アクティブ レベル (高または低) 割り込みは機能しません。
割り込みモード(立ち上がり、立ち下がり、高レベル、低レベル)をスイッチするコマンドを使用します。
NVIC_DisableIRQ ( FLEX_INT0_IRQn );
LPC_GPIO_PIN_INT -> ISEL |= ( 1UL << 0 ); //レベルセンシティブ
LPC_GPIO_PIN_INT -> CIENR |= ( 1UL << 0 ); //レベル割り込みを閉じる
//これら 2 つの構成は 1 つだけを実行します。
LPC_GPIO_PIN_INT -> IENF |= ( 1UL << 0 ); //高レベル割り込みを有効にする
LPC_GPIO_PIN_INT -> IENF &= ~( 1UL << 0 ); //低レベル割り込みを有効にする
LPC_IOCON -> PIO0_2 |= 0x10 ;
LPC_GPIO_PIN_INT -> RISE |= ( 1UL << 0 );
LPC_GPIO_PIN_INT ->フォール|= ( 1UL << 0 );
LPC_GPIO_PIN_INT -> IST |= ( 1UL << 0 );
NVIC_EnableIRQ ( FLEX_INT0_IRQn );
何かご提案がありましたら、ぜひ教えてください。
LPC11xxRe: LPC11UXX External active level interruptこんにちは@Andy2022
3 つの API が CAN 見つかる LPCopen をダウンロードしてください。
https://www.nxp.com/design/design-center/software/software-library/lpcopen-software-development-plat...
さらに、参考として GPIO 割り込みデモも用意されています。
よろしくお願いします。
BR
アリス
Re: LPC11UXX External active level interruptこんにちは、アリス:
申し訳ありませんが、まだ 3 つの API を使用していません。Keil.LPC1100_DFP.1.4.1.packを使用したためコードをコンパイルするには Keil 環境 (Keil IDE なし) が必要だったSO、3 つの API を直接使用できませんでした。これらの API のソースコードを提供してもらえますか?
また、ロジカルアナライザでレベルを観察しました。SO、ハイアクティブ割り込みが設定されているときはレベルが高くなると確信できました。
ありがとう。
BR、
アンディRe: LPC11UXX External active level interruptこんにちは@Andy2022
上記の3つのAPIを使ってみてはいかがでしょうか?
また、ハイアクティブ割り込みが設定されている場合には入力信号がハイになっていることを確認してください。
BR
アリス
Re: LPC11UXX External active level interruptこんにちは、Alice_Yangさん:
ご返信ありがとうございます。
レベル割り込みは正常に動作します (High -> Low と Low -> High の両方が割り込みをトリガーします)。

ただし、高レベル割り込みまたは低レベル割り込みのみを設定しているため、対応する操作で割り込みをトリガーできません。


どうもありがとうございます。
BR、
アンディ2022
Re: LPC11UXX External active level interruptこんにちは@Andy2022
ご質問ありがとうございます。
「レベル割り込みは正常に動作しますが、アクティブレベル(高または低)割り込みは動作しません。 」
->> SO 申し訳ありませんが、レベル割り込みは機能しますか?
それでも動作しない場合は、LPCopen の pinint デモを参照して、まずステータスをクリアし、次に割り込みを設定することをお勧めします。
/* チャネル割り込みをエッジセンシティブおよび立ち下がりエッジ割り込みとして設定します */
Chip_PININT_ClearIntStatus(LPC_PININT、PININTCH(GPIO_PININT_INDEX));
Chip_PININT_SetPinModeEdge(LPC_PININT、PININTCH(GPIO_PININT_INDEX));
Chip_PININT_EnableIntLow (LPC_PININT、PININTCH(GPIO_PININT_INDEX));
よろしくお願いします。
BR
アリス