戻る CQ出版

PICによるホーム・コントロール工作入門

サポート・ページ

本書に掲載したプログラムのダウンロード

ダウンロードの前にお読みください
こちらからダウンロードできます。
 pic_home.zip (1,208KB)

◇主なダウンロード・ファイルの一覧
(一部の設定ファイルを除く。[ ]はフォルダを表す)

[WizC]
  [02] 第2章 トライアックを使ったディジタル調光器
    ltcont.PC(*1)
    LtCont_Main.c
    LtCont_User.c
    ltcont_Auto.h(*2)
    ltcont_Lib.c(*2)
    ltcont.hex
  [03] 第3章 最大6系統をコントロールできるイルミネータ
    IlCon.PC(*1)
    IlCon_Main.c
    IlCon_User.c
    IlCon_Auto.h(*2)
    IlCon_Lib.c(*2)
    IlCon.hex
  [032] 第3章 最大6系統をコントロールできるイルミネータ(拡張版)
    IlCon.PC(*1)
    IlCon_Main.c
    IlCon_User.c
    IlCon_Auto.h(*2)
    IlCon_Lib.c(*2)
    IlCon.hex
  [04] 第4章 多用途12ch赤外線リモコン送信器
    Remo.PC(*1)
    Remo_Main.c
    Remo_User.c
    Remo_Auto.h(*2)
    Remo_Lib.c(*2)
    Remo.hex
  [05] 第5章 ポータブル型シリアル通信端末
    SerTerm.PC(*1)
    SerTerm_Main.c
    SerTerm_User.c
    SerTerm_Auto.h(*2)
    SerTerm_Lib.c(*2)
    SerTerm.hex
  [06] 第6章 24時間制シンプル・タイマの製作
    SmpRemcon.PC(*1)
    SmpRemcon_Main.c
    SmpRemcon_User.c
    SmpRemcon_Auto.h(*2)
    SmpRemcon_Lib.c(*2)
    SmpRemcon.hex
  [07] 第7章 シンプル・リモコン受信器の製作
    SmpTimer.PC(*1)
    SmpTimer_Main.c
    SmpTimer_User.c
    SmpTimer_Auto.h(*2)
    SmpTimer_Lib.c(*2)
    SmpTimer.hex
  [09] 第9章 多機能リモート・ポートの製作
    RemPort.PC(*1)
    RemPort_Main.c
    RemPort_User.c
    I2C.c
    I2c.h
    RCont.c
    RCont.h
    RemPort_Auto.h(*2)
    RemPort_Lib.c(*2)
    RemPort.hex
  [Common] 第8章 本書で使う共通関数
    CommFunc.c
    CommFunc.h
  def12f683.h
  def16f648a.h
  def16f877a.h

[CCSC]
  [02] 第2章 トライアックを使ったディジタル調光器
    LtCont.PJT(*1)
    LtCont.c
    LtCont.h
    LtCont.hex
  [03] 第3章 最大6系統をコントロールできるイルミネータ
    IlCon.PJT(*1)
    IlCon.c
    IlCon.h
    IlCon.hex
  [032] 第3章 最大6系統をコントロールできるイルミネータ(拡張版)
    IlCon.PJT(*1)
    IlCon.c
    IlCon.h
    IlCon.hex
  [04] 第4章 多用途12ch赤外線リモコン送信器
    Remo.PJT(*1)
    Remo.c
    Remo.h
    Remo.hex
  [05] 第5章 ポータブル型シリアル通信端末
    SerTerm.PJT(*1)
    LCD_custom.C
    SerTerm.c
    SerTerm.h
    SerTerm.hex
  [06] 第6章 24時間制シンプル・タイマの製作
    SmpRemcon.PJT(*1)
    SmpRemcon.c
    SmpRemcon.h
    SmpRemcon.hex
  [07] 第7章 シンプル・リモコン受信器の製作
    SmpTimer.PJT(*1)
    SmpTimer.c
    SmpTimer.h
    SmpTimer.hex
  [09] 第9章 多機能リモート・ポートの製作
    RemPort.PJT(*1)
    I2c.c
    RCont.c
    RemPort.c
    RemPort.h
    RemPort.hex
  [Common] 第8章 本書で使う共通関数
    CommFunc.c
  def648a.h
  def877a.h
  reg12f683.h
  reg648a.h
  reg877a.h

[WizC Element]
 NoCM.bmp
 NoCM.edf

[RemPort]
  [out(rels)]
    [cobsrc]
      RemPort.class(*5)
      remport.html
      RemPort_jButton1_mouseAdapter.class(*5)
      RemPort_jButton2_mouseAdapter.class(*5)
      RemPort_jCheckBox1_mouseAdapter.class(*5)
      RemPort_jToggleButton1_mouseAdapter.class(*5)
      RemPort_jToggleButton2_mouseAdapter.class(*5)
      statusReceive.class(*5)
      tcpip.class(*5)
    mimetype.ini(*3)
    out.cob(*4)
    RemPort.java
    statusReceive.java
    tcpip.java
    web2cob.exe(*3)

*1 プロジェクト・ファイル
*2 アプリケーション・デザイナ使用時にコンパイルの際に自動で生成されるファイル
*3 ダウンロード・ファイルには含まれていません。製品に付属のファイルをコピーしてください。
*4 web2cob.exeで生成されたファイルです。このファイルをXPortへアップロードします。
*5 javacでコンパイルした結果に生成されるファイルです。

◇NoAnlgCMエレメントの追加(WIZ-C)

 第5章のポータブル型シリアル通信端末では初期化ルーチンでLCDの初期化が実行される前にアナログ・コンパレータをOFFにしてPORTAをディジタルI/Oに設定しておく必要があります。このため、本書で用意した"NoAnlgCM"エレメントをアプリケーション・デザイナで登録してください。

 使用するに先立って、WIZ-Cにこのエレメントを登録しておく必要があります。登録作業は、WIZ-Cをいったん終了させて、ダウンロードしたファイルの"WIZ-C Element"フォルダにある次の2つのファイルを、WIZ-Cがインストールされているフォルダにある"APPWIZ"フォルダへコピーするだけです。

  "NoCM.bmp"
  "NoCM.edf"

 WIZ-CがCドライブの標準的なフォルダへインストールされている場合は、次のフォルダになります。

  "C:\Program Files\FED\PIXIE\APPWIZ"

 WIZ-Cを再起動させると、アプリケーション・デザイナの"Analog"のページに"NoAnlgCM"エレメントが追加されています。なお、この"NoAnlgCM"エレメントの登録は他のエレメントよりも後(一番最後)にしてください。

 WIZ-Cでプロジェクト・ファイルを開く前に "NoAnlgCM"エレメントのファイルをコピーしておいてください。コピーする前に、このエレメントを使用たプロジェクト・ファイルを開くと、エレメントが削除されてしまいます。もし削除された場合は、NoAnlgCMエレメントのファイルをコピーした後に同エレメントをアプリケーション・デザイナで再登録してください。

◇WIZ-Cのソース・ファイルに関する注意

 ダウンロードしたソースファイル"*.c"、"*.h"はユニコードになっています。Windowsメモ帳などでも開けますが、それ以外のエディタで参照、修正する場合はユニコードに対応したものが必要です。当然ながら、WIZ-Cのエディタ・ウィンドウでは何ら意識することなく参照、修正が可能です。なお、WIZ-Cはユニコードを使用する設定にしておいてください。

 ダウンロードした直後のプロジェクト・ファイルをWIZ-Cで開くと、エディタ・ウィンドウに複数のソース・ファイルが開く場合があります。この場合は、いったんすべてのファイルを閉じてからコンパイルしてください。いったんコンパイルしたあと、プロジェクトのフォルダ名を変更したり、別のフォルダにコピーした場合など、ファイル、フォルダ位置が変わったときも同様にです。

 アプリケーション・デザイナが有効の場合、自動生成されるファイル("xxx_Auto.h"など)のパスは、自動で修正されます。アプリケーション・デザイナを使わないものに関しては、手動でパスを修正する必要があります。

 "xxx_main.c"、"xxx_Lib.c"など自動生成されるファイルでは"xxx_Auto.h"が絶対パスで指定されているものもありますが(筆者が作業していたときのパスが残っている)、アプリケーション・デザイナを使う設定で再コンパイルすると、使用環境に合わせて、パスが自動的に修正されます。

◇WIZ-C Ver.12でコンパイルする際の注意

 第5章のポータブル型シリアル通信端末のプログラムをWIZ-C Ver.12でそのままコンパイルするとコンパイル・エラーが発生することがあります。エラー内容は

  "Label not found _WL0"

というものです。これはヘッダ・ファイルのインクルードの順序が適当でないために発生しているようです。Ver.11.05では発生しないため、Ver.12のバグと思われます。

 この場合はアプリケーション・デザイナを使用しない設定に切り替えて、"xxx_Auto.h"を手修正するしか方法がありません。

修正するファイルは

  "05\SerTerm_Auto.h"

です。

 ソース・ファイルの初めの方にあるヘッダ・ファイルのインクルード順序を次のように修正して再コンパイルください。このとき、必ずアプリケーション・デザイナはOFFにしておいてください。そうしないと、この修正は上書きされて元に戻ってしまいます。

  #include <displays.h>
  #include <DataLib.h>
  #include <delays.h>

 ダウンロード・ファイルは修正済みですが、プロジェクト・ファイルを読み込んだ直後の状態ではアプリケーション・デザイナを使用するようになっています。このままコンパイルするとエラーになります(自動的にソースファイルが修正されるため)。

 Ver.12でソース・ファイルをとりあえずコンパイルしてみたい、という場合は、プロジェクト・ファイルを読み込んですぐにアプリケーション・デザイナをOFFにして再コンパイルすれば、エラーなしにコンパイルできます。