/********************************************************************* 本ソースリストおよびソフトウェアは、ライセンスフリーです。 利用、編集、再配布等が自由に行えますが、著作権表示の改変は禁止します。 Copyright (c) 2009 Wataru KUNINO https://bokunimo.net/bokunimowakaru/ *********************************************************************/ #define NAME "IR-TESTER" #define VERSION "1.06" /* コマンド・リファレンス ■シリアル・コマンド PCからハイパーターミナルやTeraTermを使用して制御します。 通信設定は「19200 8-N-1」としてください。 「read」と入力すると赤外線検出が始まり、検出すると受信データ等が 表示されます。「send」と入力すると受信した信号を送信します。 read [1-9] リモコン信号の読取り(読取り時間 約5秒×引数) read loop 連続読取り(無限ループ、復帰はリセット) read simple シンプルモードで受信(予めmode=AEHA/NEC/SIRCを設定する必要がある) send [1-9] リモコン信号の送信(送信回数) send simple シンプルモードで送信(タイマーを使用せずにデータ生成) put [1-12] 読み取った信号をレジスタ(RAM)に登録(学習) [get] [1-12] レジスタに登録された信号を復元して送信「getは省略可能」 display 信号の表示 input={0xNN...} データ入力 input={0xAA,0x5A,...} のように入力する mode=[mode] モード設定(AEHA/NEC/SIRC)/モード名の省略で設定確認 freq=[10-89] 赤外線38kHz(AEHA)搬送波を10〜80kHzに設定/数値省略で設定確認 tau=[10-89] 赤外線38kHz(AEHA)搬送波のデューティー(tau)を10〜80%に設定 width=[100-890] 変調単位を100〜800usに設定(10us単位)/数値省略で設定確認 length=[10-99] コード長(ビット数)を変更/数値省略で設定確認 cal [0-9] キャリブレーション(0で補正なし)/引数なしで校正値の確認 edit データ編集用エディタの起動(未実装) quit シリアル入出力しない単独テスターモードに移行(復帰はリセット) ■単独テスター・コマンド ボタンを押下した状態(SW1=H)で起動(もしくはリセット)すると単独テスターとして 使用できます。 Panasonic製BDレコーダーのリモコン(1)の4色ボタンでコマンドを入力します。 4色ボタンを押して、若干、遅れてから処理が開始されます。 青色ボタン send 送信 赤色ボタン read 読取り 緑色ボタン disp 表示(液晶のみ) 黄色ボタン loop 連続読取り(送信なし) 数字ボタン get レジスタの信号を送信 ※常時read待ちになっていますので、赤ボタンを押さなくても読み取れます。 ■キャリブレーションについて ※起動時にcalを実施しているので通常は再実施する必要はありません。  しかし、初回calの丸め誤差の関係で動作しない機器があります。  引数を0にすると設定初期値を元に初回calと同じ動作を行います。  引数を1にすると現在の値を元に補正します。  2〜9の引数にてcal値を遅い方向に補正できます。 ■既知の不具合または制限事項 ・受信データ長の時間表示の精度が4ms前後の誤差を持っています。 ・SIRCをread loopで連続読み取りを行うとAEHAと判断してしまいます。 ・単独テスターモードで送信すると、信号が少し遅れる。  (多少の改善は行えますが原理的にゼロには出来ません) ・SYNC DurationとSYNC CountsのON:OFF時間比が同じにならない  (SYNC Durationは検出遅延を補正していますが、Countsは補正していない) ■開発環境に関する注意点 ・株式会社ベストテクノロジーのGCC Developer Liteを使用します。 http://www.besttechnology.co.jp/ ・該社ホームページの「ナレッジベース」よりダウンロードできます。 http://www.besttechnology.co.jp/modules/knowledge/?GCC%20Developer%20Lite ・この開発環境に含まれるH8マイコン用のライブラリを使用しています。 ・複数のファイルが同時に扱えませんので以下のように工夫しています。 ・全てのソースをincludeで包括 ・main.cに初期設定パラメータを統括 ・一部のソースにはincludeにフラグを付加して重複inculdeを防止 ・推奨の利用方法 ・main.cを開発環境で開く ・その他のソースはテキストエディタで開く ・コンパイルの都度、全ソースがコンパイルされます ■Q&A ・このプログラムを使った商品は販売できますか?  →当方に著作権のある部分の使用には問題ありません。 ・ソースコードを編集して配布してもかまいませんか?  →当方に著作権のある部分の再配布には問題ありません。 ・機能追加を御願いしたい  →場合によっては対応しますが、全てには対応できません。 ・リモコンコードを提供するので追加して欲しい  →場合によっては対応しますが、全てには対応できません。 ・readの反対はwriteで、sendの反対はreceiveです。  →sendとreceiveの組み合わせで入力していただいても結構です。 ■参考文献 ・H8マイコン関連 3664F,3694Fで始めるH8 http://www9.plala.or.jp/fsson/NewHP_elc/Link_nH8.html 株式会社ベストテクノロジー http://www.besttechnology.co.jp/ 株式会社 秋月電子通商 http://akizukidenshi.com/ 株式会社ルネサステクノロジー http://japan.renesas.com/ ・赤外線リモコン方式 Remote Control with PIC http://einst.hp.infoseek.co.jp/Remocon2/Remocon2.html 赤外線学習リモコンの信号定義データの合成 http://www.geocities.jp/shrkn65/remocon/ NECフォーマットの赤外線リモコン・フォーマット http://www.necel.com/ja/faq/mi_com/__com_remo.html ■謝辞 ・当方サイトを御利用いただいている方々を始め、  多くの方々に支えられて開発することが出来ました。  アフィリエイトで研究費に協力をいただいた方々、  参考文献の資料を公開されている方々、  キャラクタ液晶の表示部分のソースを提供いただいたnakさん、  ご協力をいただきました方々に、心より感謝の意を表します。 ■変更履歴(概略) ・V1.01:受信データ長が長くなるのを修正 ・V1.06:CAL中にノイズを受信時のハングアップ防止 */