Deprecated: Assigning the return value of new by reference is deprecated in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 25

Deprecated: Assigning the return value of new by reference is deprecated in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php:25) in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 81
科学好き者の日々::赤外線リモコンでのコントロール その3

赤外線リモコンでのコントロール その3

ノイズに誤動作せず、NECフォーマットと家電協会フォーマットの両方で動作するためには、リーダー部の長さを見ればいいと気がつきました。

やれやれ。。。もっと早く気がつけよな!!

割り込みでリーダ部が始まったら、3点でチェックするのではなく、信号が立上がるまでポーリングしていて、立下りから立上がりまでの時間(負論理の信号になっています)を計ります。
リーダ部のこの部分の時間は、家電協会フォーマットは3.2mS、NECフォーマットは9mSありますので、3.2mS以上あればリーダ部だと判断すればいいことになります。

赤外線リモコン受光モジュールからの割り込み信号が入ったら、タイマー1をクリアして、受光モジュール信号をポーリングします。立上がったら、そのときのタイマー1のTMR1Hを読みます。
タイマー1はシステムクロック(4MHz)の1/4で動いています。プリスケーラを2としていますので、TMR1Hは0.512mSごとにカウントアップします。
TMR1Hのカウント値が6以上(3mS以上)ならリーダ部と判定します。

これで蛍光灯による誤動作がなく、NECフォーマットと家電協会フォーマットの両方で動作するようになりました。

これから先は、データ部の内容を読むことをすれば、また別の応用があるのですが。。。。。



Calendar
<< May 2024 >>
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
262728293031
search this site.
tags
archives
recent comment
recent trackback
others
admin