# 赤外線通信 ゲームボーイカラーには赤外線通信機能が備わっています。通信距離は5cm程度です。 有名なものだと、ポケモン金銀クリスタルの「ふしぎなおくりもの」などでこの赤外線通信機能が使われていました。 ゲームボーイアドバンスには赤外線通信機能は備わっていません。 赤外線通信機能は以下の赤外線通信機能ポートレジスタを使って制御します。 ## FF56 - RP - 赤外線通信機能ポートレジスタ ゲームボーイカラーに内蔵された、赤外線ポートからデータをやり取りします。 データの読み込み時は、bit6とbit7を1にし、bit0を0にする必要があります。 データの通信後は、バッテリーの電力消費を抑えるため、このレジスタの値を`0`にしておきます。 ``` Bit 0: 書き込むデータ (0=LEDオフ、 1=LEDオン) (読み込み/書き込み可能) Bit 1: 読み込んだデータ (0=IR信号の受け取っている状態, 1=通常状態(受け取っていない状態)) (読み込み専用) Bit 6-7: データの読み込み有効 (0=無効, 3=有効) (読み込み/書き込み可能) ``` なお、赤外線レシーバーは空気中の赤外線汚染レベルに応じて、反応の閾値を変動させる適応機能があります。赤外線信号を長く送信しても、しばらくすると赤外線レシーバーはそれを通常状態(=OFF)とみなします。 例えば、フィリップスのテレビリモコンでは、880μsのLEDオン信号を送り続けるのではなく、32個のLEDオン/オフパルス(10μs:オン, 17.5μs:オフ)という形で送っています。 ``` 32*(10+17.5) = 880 ```