組み込み系 外部割込みのノイズ対策

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
asahi
記事: 8
登録日時: 5年前

組み込み系 外部割込みのノイズ対策

#1

投稿記事 by asahi » 5年前

仕事で組み込み系のプログラムをしています。現在困っている現象に出くわしてしまいました。
【現象】
外部割込み機能として設定した入力ピンにチャタリングノイズが発生した場合に外部割込み関数が誤って反応してしまう。
<詳細>
 マイコン(stm32f4シリーズ)のPA4に入ってくる信号が立ち下がりエッジと立ちあがりエッジのときに、外部割込み関数が動作して処理を行うようにしている。

【やりたいこと】
正しく立ち上がり/立ち下がりエッジが入力されたときのみ処理ルーチンを実行したい(下記コード参照)。ノイズによって割り込み関数が働いたとしても、そのときは処理ルーチンを実行したくない

コード:


/*外部割込み関数*/
 EXTI4_IRQ_handler(){
        clearFlg(PA4);   //割り込みフラグのクリア
 	/*
 	処理ルーチン
 	*/
}
どなたか、こういった対策した方はいないでしょうか。今自分が考えているのは下記のようなものです。
電圧レベルを2回チェックして2回ともへんかなければ、正しい信号とする処理

コード:


/*外部割込み関数*/
 EXTI4_IRQ_handler(){
        clearFlg(PA4);   //割り込みフラグのクリア
        for(i = 0;i++i<1){
          	if(PA4の電圧レベルがLowなら){
       	             LowCnt++;
       	 	}
       	 	else
       	 	{
       	 	     HighCnt++;	
       	 	} 	
        }
        if(LowCnt  > 1 or HighCnt >1){
        	/*処理ルーチン*/
	 	LowCnt =  0;
	 	HighCnt = 0;
        }
}

“C言語何でも質問掲示板” へ戻る