[Armadillo:07920] Re: Armadillo-440 インプットデバイスのチャタリング防止について

Takenoshita Koyo email@hidden
2012年 3月 2日 (金) 18:25:09 JST


竹之下です。

> もともとインプットデバイスのドライバにはチャタリング除去の処理は入ってい 
> ないのでしょうか。
Armadillo-400シリーズのボタン入力は、GPIO keysという仕組みで実装してあります。

linux-2.6.26-at/drivers/input/keyboard/gpio_keys.c

このドライバには、チャタリング除去処理は入っていません。
(Armadillo-400シリーズでは、RCフィルタにより、ハードウェア的にチャタリングを
除去するようになっています。)

チャタリング除去をソフトウェア的に行うのであれば、GPIO keysドライバを改造する
のが良いでしょう。

GPIO keysドライバでは、ボタン入力をGPIOのエッジ割り込みで検出して、エッジ割り込み
があった場合、インプットイベントを発行するという処理をしています。
(gpio_keys_isr関数で、その処理を行っています。)

この部分を、「短時間に複数回のエッジ割り込みが発生したら、インプットイベントを
発行する」というように修正すれば、チャタリング除去になると思います。

(2012年02月28日 21:12), email@hidden wrote:
> お世話になります。
> 橋本と申します。
> Armadillo-440に実装しているインプットデバイスのチャタリングについての情 
> 報を探しています。
> Armadillo-440の拡張入出力端子に自作ボタンを追加し、ドライバはもともと実 
> 装されている
> SW1やLCD_SWと同じようにインプットデバイスとして実装しました。
> コンソール上よりevtestコマンドを実行して、ボタン押下のイベント発生を確認 
> したところ、
> 1回のボタン押下で複数回検知していることを確認しました。
> まずは、ソフトでチャタリング除去を試してみようと考えていますが、
> もともとインプットデバイスのドライバにはチャタリング除去の処理は入ってい 
> ないのでしょうか。
> ご存じの方がいましたら、宜しくお願い致します。
> 以上
> 
> 
> 
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo


-- 
Koyo Takenoshita




armadillo メーリングリストの案内