＜クラス名およびバージョン＞
CIOEX
ver 0.12

＜ファイル名＞
CIOEX.BAS

＜ライセンス＞
BASファイルは、パブリックドメイン。

＜概要＞
I/Oエキスパンダー、MCP23017を制御するためのクラス。最大８個まで接続可。

＜コンストラクター＞
第１引数
	３ビットの接続アドレスを指定。省略した場合は、０。

第２引数
	I2Cクロックを、kHz単位で指定。省略した場合は、400。

＜パブリックフィールド＞
なし

＜パブリックメソッド＞
TRISA()
	現在のTRISA値を返す。TRIS値は、ポートを入力で使うか出力で使うかの値で、ビッ
	トごとに１で入力、０で出力。デフォルトは、0xFF（全て入力）。

TRISA(x)
	TRISA値を、８ビットの値、xで指定。

TRISA(x,y)
	TRISA値の、下位からxビット目を、yに指定。

TRISB()
	現在のTRISB値を返す。TRIS値は、ポートを入力で使うか出力で使うかの値で、ビッ
	トごとに１で入力、０で出力。デフォルトは、0xFF（全て入力）。

TRISB(x)
	TRISB値を、８ビットの値、xで指定。

TRISB(x,y)
	TRISB値の、下位からxビット目を、yに指定。

LATA()
	現在のLATA値を返す。LAT値は、ポートを出力で使う場合の出力値で、ビットごと
	に設定。デフォルトは、0x00（全て0を出力）。

LATA(x)
	LATA値を、８ビットの値、xで指定。

LATA(x,y)
	LATA値の、下位からxビット目を、yに指定。

LATB()
	現在のLATB値を返す。LAT値は、ポートを出力で使う場合の出力値で、ビットごと
	に設定。デフォルトは、0x00（全て0を出力）。

LATB(x)
	LATB値を、８ビットの値、xで指定。

LATB(x,y)
	LATB値の、下位からxビット目を、yに指定。

CNPUA()
	現在のCNPUA値を返す。CNPU値は、ポートを入力で使う場合のプルアップの設定で、
	ビットごとに１で使用、０で不使用。デフォルトは、0x00（全て不使用）。

CNPUA(x)
	CNPUA値を、８ビットの値、xで指定。

CNPUA(x,y)
	CNPUA値の、下位からxビット目を、yに指定。

CNPUB()
	現在のCNPUB値を返す。CNPU値は、ポートを入力で使う場合のプルアップの設定で、
	ビットごとに１で使用、０で不使用。デフォルトは、0x00（全て不使用）。

CNPUB(x)
	CNPUB値を、８ビットの値、xで指定。

CNPUB(x,y)
	CNPUB値の、下位からxビット目を、yに指定。

PORTA()
	ポートＡから８ビットの値を読み込み、返す。

PORTA(x)
	ポートＡの下位からxビット目を読み込み、返す。

PORTB()
	ポートＢから８ビットの値を読み込み、返す。

PORTB(x)
	ポートＢの下位からxビット目を読み込み、返す。

＜使用例＞

MCP23017を２つ接続し、一つはアドレス０(A0=0, A1=0, A2=0)で、もう一つはアドレス
１で使う例です。アドレス０の石はPORTAを出力PORTBを入力で、アドレス１の石は
PORTAを入力PORTBを出力で使う設定です。

USECLASS CIOEX
USEVAR IO0,IO1
IO0=NEW(CIOEX,0x00)
IO1=NEW(CIOEX,0x01)
CALL IO0.TRISA(0x00)
CALL IO1.TRISB(0x00)
CALL IO0.LATA(0x55)
CALL IO1.LATB(0xAA)
PRINT HEX$(IO0.PORTB(),2)
PRINT HEX$(IO1.PORTA(),2)

