■ BASCOM-AVR (DEMO) の使用方法 ■
命令文のリファレンスマニュアル 使用方法のページへ戻る
I2C デバイスを制御する命令
CONFIG SCL I2Cバスの、SCLラインを接続する、ポートピンを設定します。
CONFIG SDA I2Cバスの、SDAラインを接続する、ポートピンを設定します。
CONFIG I2CBUS 複数のI2Cバスを構成して、SCLとSDAラインのポートピンを設定します。
CONFIG I2CDELAY ソフトウェア I2Cの、SCLクロック速度を設定します。
CONFIG TWI TWI(ハードウェア I2C)の、SCLクロック速度を設定します。
I2CINIT I2Cバスの、SCL、SDAラインを初期化します。
I2CSEND I2Cデバイスに、データを送信します。
I2CRECEIVE I2Cデバイスから、データを受信します。
I2CSTART I2Cバスを、[スタート・コンディション] の状態にします。
I2CSTOP I2Cバスを、[ストップ・コンディション] の状態にします。
I2CREPSTART I2Cバスを、[リピート・スタート・コンディション] の状態にします。
I2CWBYTE I2Cデバイスに、データを1バイト送信します。
I2CRBYTE I2Cデバイスから、データを1バイト受信します。
CONFIG I2CSLAVE I2C スレーブ・モードを構成します。
CONFIG TWISLAVE TWI スレーブ・モードを構成し、スレーブ・アドレス、ビットレートを設定します。
CONFIG USI ハードウェアUSIを設定します。


*** BASCOMのI2C命令について ***
 
ソフトウェアI2C と ハードウェアI2C
 
・BASCOMでI2C命令を使用する場合、初期状態(指定が無い場合)ではソフトウェアI2Cルーチンを
 使用します。
・これは、初期のAVRチップが、まだTWI(ハードウェアI2C)を搭載していなかったからです。
・PhilipsがI2Cの開発元であるめ、AtmelはTWIと命名しました。 (TWIはI2Cと同じです)
・従って、BASCOMを使用すると、すべてのAVRチップでI2Cインターフェイスを使用することができます。
 
・ほとんどの新しいAVRチップには、ハードウェアのI2C(TWI)が組み込まれています。
・「I2C_TWI」ライブラリを使用するとTWIを使うことができ、これはフラッシュのコードを少なくできる利点が
 あります。
・代わりに、チップ固有の指定されたSCLピンとSDAピンしか使用できないという欠点もあります。
 (CONFIG SCLとCONFIG SDA命令で、チップ固有のSCLピンとSDAピンを指定する必要があります)
・使用するチップにTWIインターフェイスがある場合は、このTWIを使用することをお勧めします。
・BASCOMにTWIの使用を強制するには、コードに下記の命令文を挿入する必要があります。
 $lib "i2c_TWI.LBX"  (CONFIG TWIを参照)

I2C命令の体系
 
・「I2CSEND」と「I2CRECEIVE」命令で、ほとんどの通信処理を行うことができますが、スレーブ・デバイス
 の一部に、これらのI2Cルーチンでは不都合が出て、特殊な通信が必要になる場合があります。
・I2CSTART、I2CWBYTE、I2CRBYTE、I2CSTOP、I2CREPSTART 命令を使用すると、必要なI2C通信
 処理を作成することができます。
 
・通常のAVRチップは、リピート・スタート・コンディションにする場合、I2CSTARTまたはI2CREPSTART
 命令のいずれかを使用できます。
・XMegaでリピート・スタート・コンディションにするには、I2CREPSTARTを使用する必要があります。
・下記の「i2cV2.LBX」を使用している場合も同様です。

ソフトウェアI2Cの注意点
 
・BASCOMのソフトウェアI2Cルーチンは、初期状態で「i2c.lib」という名前のライブラリを使用します。
・このライブラリは、クロック(SCL)およびデータ(SDA)線の状態を保全しないため、i2cstartまたはi2cstop
 命令が実行されると、STARTおよびSTOPコンディションが生成される前に、クロックおよびデータ線を
 適切な状態(例えばアイドル状態)に設定する必要があります。
・これにより、小さなグリッチ(ノイズになるパルス)が発生する可能性があります。
・ほとんどのスレーブ・デバイスはこのグリッチを無視しますが、いくつかのデバイスがこれにより異常な
 動作を起こすことがあります。
 
・その対策のために、クロックとデータ線が常に既知の状態になるように修正されたライブラリが
 追加されました。
・このライブラリでは、グリッチのないクロックとデータ線の状態を生成することができます。
・このライブラリを使用するには、コードに下記の命令文を挿入する必要があります。
 $lib "i2cV2.LBX"  (I2CREPSTARTを参照)
・これにより、コンパイラはこのライブラリを使用します。
・注意点として、リピート・スタート・コンディションにするには、I2CREPSTARTを使用する必要があります。

 
USI (ユニバーサル・シリアル・インターフェイス)について
 
・USIは、ほとんどのATtinyチップに搭載されており、さまざまな仕事に使用できます。
・現時点のBASCOMでは、TWIマスター・モードとTWIスレーブ・モードのみがサポートされています。
・その他のモードは、ユーザー自身で設定およびコード化する必要があります。
 
・「i2c_USI.LBX」ライブラリは、代用のI2Cマスター・ライブラリで、USIインターフェイスを搭載している
 チップで使われることを目的としています。
・ハードウェアを使用する方がフラッシュの使用量が少なくなるため、より優れています。
・もし、チップがTWIを持っているならば、TWIの使用をお勧めします。
・チップがUSIを持っているならば、USIの使用をお勧めします。
・チップにハードウェアI2C(TWIまたはUSI)がない場合は、BASCOMのソフトウェアI2Cルーチンを
 使用します。
・I2Cのマスター・モードでUSIを使用するには、CONFIG USI命令を使用します。




CONFIG SCL 一覧へ戻る
I2Cバスの、SCLラインを接続する、ポートピンを設定します。

書式 Config Scl = PORTX.b
注釈
X ポートの名前。 ( A , B , C , D , E , F , G )
b ピンの番号。 ( 0 〜 7 )

参照 CONFIG SDA , CONFIG I2CDELAY , CONFIG TWI

 
・コンパイラの[Options]→[Compiler]→[I2C]からも設定が可能ですが、この命令が優先されます。
・ソフトウェア I2Cの場合は、設定されたポートピンが、DDRによる疑似オープンドレインで操作されます。
・TWI(ハードウェア I2C)の場合も、既存のポートピンを指定する必要があります。



CONFIG SDA 一覧へ戻る
I2Cバスの、SDAラインを接続する、ポートピンを設定します。

書式 Config Sda = PORTX.b
注釈
X ポートの名前。 ( A , B , C , D , E , F , G )
b ピンの番号。 ( 0 〜 7 )

参照 CONFIG SCL , CONFIG I2CDELAY , CONFIG TWI

 
・コンパイラの[Options]→[Compiler]→[I2C]からも設定が可能ですが、この命令が優先されます。
・ソフトウェア I2Cの場合は、設定されたポートピンが、DDRによる疑似オープンドレインで操作されます。
・TWI(ハードウェア I2C)の場合も、既存のポートピンを指定する必要があります。



CONFIG I2CBUS 一覧へ戻る
複数のI2Cバスを構成して、SCLとSDAラインのポートピンを設定します。

書式 Config I2cbus = n , Scl = PORTX.b , Sda = PORTX.b
注釈
n I2Cバスを選択する番号。 ( 0〜15の数値、必ず0から割り付ける )
X ポートの名前。 ( A , B , C , D , E , F , G )
b ピンの番号。 ( 0 〜 7 )

参照 I2CINIT , CONFIG I2CDELAY

 
・I2Cスレーブアドレスが同じデバイスでも、I2Cのバスラインを増やして接続し制御できます。
 
・各バスのSCLとSDAピンは、同じポートにする必要があります。 (バスの構成は別ポートでも可能)
・Mega128の「PortF」の様に、PIN、DDR、PORTレジスターのアドレスが昇順になっていない
 AVRのポートでは使用できません。
 
・各バスを構成した後に、必ずI2CINIT命令でそれぞれのバスラインを初期化する必要があります。
・内部変数「I2cbus」が用意されるので、各I2C命令を実行する前に、この変数にバスの選択番号を
 入れて、バスを切り替えます。
 
(例)
Config I2cbus = 0 , Scl = Portd.0 , Sda = Portd.1 ' PD0,PD1にI2Cバスを構成する。
Config I2cbus = 1 , Scl = Portd.3 , Sda = Portd.2 ' PD2,PD3にI2Cバスを構成する。
Config I2cbus = 2 , Scl = Portc.0 , Sda = Portc.1 ' PC0,PC1にI2Cバスを構成する。
I2cbus = 0 ' I2Cバス[0]を選択する。
I2cinit ' I2Cバス[0]ラインを初期化。
I2cbus = 1 ' I2Cバス[1]を選択する。
I2cinit ' I2Cバス[1]ラインを初期化。
I2cbus = 2 ' I2Cバス[2]を選択する。
I2cinit ' I2Cバス[2]ラインを初期化。
' '
I2cbus = 1 ' I2Cバス[1]を選択する。
I2csend &H40 , &B0101010 ' I2Cバス[1]に送信する。
I2cbus = 0 ' I2Cバス[0]を選択する。
I2creceive &H64 , I2cbuff(1) , 1 , 7
' I2Cバス[0]から受信する。



CONFIG I2CDELAY 一覧へ戻る
ソフトウェア I2Cの、SCLクロック速度を設定します。

書式 Config I2cdelay = value
注釈 value = クロック周期の遅延数。 (1 〜 255)

参照 CONFIG SCL , CONFIG SDA , CONFIG TWI

 
・値が大きいほど、周波数が下がります。
・デフォルトは5で、クロックは200KHzに設定されています。 10を設定すると、100KHzになります。
・AVRの動作クロックが低い場合は、上記の設定にならない場合があります。
 

注.ソフトウェア I2Cの、SCLクロック速度設定(CONFIG I2CDELAY)にバグがあります。
 
・マニュアルに記載されている、遅延数 (5 = 200KHz , 10 = 100KHz) は、AVRの動作クロックが
 4MHzの場合($crystal = 4000000)の計算値で、($crystal =)の値が(4000000)以外の場合は、
 SCLクロック速度が記載されている値になりません。
 
・AVRの動作クロックが16MHzの場合に、1の設定で約238kHzとなります。



CONFIG TWI 一覧へ戻る
TWI(ハードウェア I2C)の、SCLクロック速度を設定します。

書式 Config Twi = value
注釈 value = SCLクロック周波数。

参照 CONFIG SCL , CONFIG SDA , CONFIG I2CDELAY

 
・必要なクロック周波数を、周波数値で設定します。
 ( 400KHz = 400000 , 100KHz = 100000 )
・AVRの動作クロックが低い場合は、設定の速度が得られない場合があります。
 
・TWI(ハードウェア I2C)を使用する場合は、ライブラリ "i2c_twi.lbx" を組み込む必要があります。
 
(例)
$regfile = "M128def.dat" ' AVRデバイスを"ATmega128"に設定。
$crystal = 16000000 ' クロック周波数を16MHzに設定。(任意の周波数)
$lib "i2c_TWI.LBX" ' TWI用ライブラリを組み込む。
Config Scl = PORTD.0 ' SCLラインを接続する、ポートピンを設定。
Config Sda = PORTD.1 ' SDAラインを接続する、ポートピンを設定。
Config Twi = 400000 ' SCLクロック速度を設定。
I2cinit ' SCL・SDAラインを初期化。


Xmegaチップの場合。
 
書式 Config Twix = value
注釈 Twix = TWIC or TWID or TWIE or TWIF
value = SCLクロック周波数。

・Xmegaは最大4つのTWIバスを設置することができます。
・Xmegaは複数のTWIバスを設置することができるので、TWID、TWIE、TWIFを指定するときは、
 チャネルの識別子を使用する必要があります。
・TWIC、TWID、TWIE、TWIFを指定しない場合、TWICが初期値として使用されます。
・これは通常のI2CコードがTWICとだけ完全な互換性があることを意味します。
・したがって、チャネル識別子を省略すると自動的にTWICが使用されます。
・TWI_STARTという名前の変数をバイトで定義する必要があります。
・これはXmegaのTWIライブラリによって使用され、それがないとエラーが発生します。


Xtinyチップの場合。
 
書式 Config Twix = value
注釈 Twix = TWI or TWI0
value = SCLクロック周波数。

・Xtinyは、1つのTWIバスを搭載しています。
・Xtinyは複数のTWIバスを設置できるため、TWI1以上のアドレスを指定する場合はチャネル識別子を
 使用する必要があります。
・これは、通常のI2Cコードと完全に互換性がありますが、TWI,TWI0にしか対応していないことを
 意味します。
・したがって、チャネル識別子を省略すると、自動的にTWI0が使用されます。
・TWI_STARTという名前の変数をバイトで定義する必要があります。
・これはXmegaのTWIライブラリによって使用され、それがないとエラーが発生します。

・チップによっては、Mega328PBのように複数のTWIインタフェースをサポートするものもあります。
・CONFIG TWI1を使用して、TWI1という名前の2番目のTWIを構成してください。
・TWI0と名付けられた最初のTWIはTWIと呼ばれます。



I2CINIT 一覧へ戻る
I2Cバスの、SCL、SDAラインを初期化します。

書式 I2cinit
注釈 なし

参照 I2CSEND , I2CRECEIVE

 
・SCL、SDAラインを、Hレベル(オープンドレイン)にします。



I2CSEND 一覧へ戻る
I2Cデバイスに、データを送信します。

書式 I2csend SlvAdr , variable
I2csend SlvAdr , variable , length
注釈
SlvAdr I2Cデバイスの、8bitスレーブ・アドレス。 (バイト型変数 または 定数)
variable 送信するデータ。 (バイト、ワード、ロング型変数、配列、定数)
length 送信するバイト数。 (バイト型変数 または 定数 [1〜255])

参照 I2CINIT , I2CRECEIVE

 
・[スタート・コンディション] → [アドレス送信] → [データ送信] → [ストップ・コンディション] の、一連の
 動作を行います。
・送信データが、ワードやロング型の場合、下位バイトから送信されます。 (レングスも指定が必要)
・エラーが発生すると、内部変数 [ERR] にエラー情報が入ります。 (エラー無し = 0 、 エラー有り = 1)
 
(例)
Dim Dat(10) As Byte ' 使用する変数を宣言。
I2csend &HA0 , Dat(1) , 10 ' 配列の内容を10バイト送信。



I2CRECEIVE 一覧へ戻る
I2Cデバイスから、データを受信します。

書式 I2creceive SlvAdr , variable
I2creceive SlvAdr , variable , lengthS , lengthR
注釈
SlvAdr I2Cデバイスの、8bitスレーブ・アドレス。 (バイト型変数 または 定数)
variable 送信・受信データを入れる変数。(バイト、ワード、ロング型変数、配列)
lengthS 送信するバイト数。 (バイト型変数 または 定数 [1〜255])
lengthR 受信するバイト数。 (バイト型変数 または 定数 [1〜255])

参照 I2CINIT , I2CSEND

 
・[スタート・コンディション] → [アドレス送信] → [データ送信] → [データ受信] →
  [ストップ・コンディション] の、一連の動作を行います。
・スレーブ・アドレス内の[Read/Write]ビットはソフトウェアで設定されるので、SlvAdr
 8bitのベース・アドレスを指定して下さい。
・エラーが発生すると、内部変数 [ERR] にエラー情報が入ります。 (エラー無し = 0 、 エラー有り = 1)
 
(例)
Dim Buf(2) As Byte ' 使用する変数を宣言。
I2creceive &HA0 , Buf(1) , 2 , 1 ' 2バイトを送信し、1バイトを受信します。



I2CSTART 一覧へ戻る
I2Cバスを、[スタート・コンディション] の状態にします。

書式 I2cstart
注釈 なし

参照 I2CSTOP , I2CWBYTE , I2CRBYTE , I2CREPSTART

 
I2CSENDI2CRECEIVE命令の一連の動作を、個別に実行させることができます。
・エラーが発生すると、内部変数 [ERR] にエラー情報が入ります。 (エラー無し = 0 、 エラー有り = 1)

(例) I2CWBYTE命令を参照。



I2CSTOP 一覧へ戻る
I2Cバスを、[ストップ・コンディション] の状態にします。

書式 I2cstop
注釈 なし

参照 I2CSTART , I2CWBYTE , I2CRBYTE , I2CREPSTART

 
I2CSENDI2CRECEIVE命令の一連の動作を、個別に実行させることができます。
・エラーが発生すると、内部変数 [ERR] にエラー情報が入ります。 (エラー無し = 0 、 エラー有り = 1)

(例) I2CWBYTE命令を参照。



I2CREPSTART 一覧へ戻る
I2Cバスを、[リピート・スタート・コンディション] の状態にします。

書式 I2crepstart
注釈 なし

参照 I2CSTART , I2CSTOP , I2CWBYTE , I2CRBYTE

 
I2CRECEIVE命令の一連の動作を、個別に実行させることができます。
・エラーが発生すると、内部変数 [ERR] にエラー情報が入ります。 (エラー無し = 0 、 エラー有り = 1)
 
(例) I2C-EEPROMの読み出し
$lib "i2cV2.LBX" ' 修正版のライブラリを組み込む。
Config Scl = PORTD.0 ' SCLラインを接続する、ポートピンを設定。
Config Sda = PORTD.1 ' SDAラインを接続する、ポートピンを設定。
I2cinit ' SCL・SDAラインを初期化する。
I2cstart ' [スタート・コンディション] の状態にする。
I2cwbyte Slvadr_w ' 8bitスレーブ・アドレス(書き込み)を送信。
I2cwbyte Eepadr ' EEPROMアドレスを送信。
i2crepstart ' [再スタート] の状態にする。
I2cwbyte Slvadr_r ' 8bitスレーブ・アドレス(読み出し)を送信。
I2crbyte Value1 , Ack ' データを読み出す。
I2crbyte Value2 , Nack ' データを読み出す。
I2cstop ' [ストップ・コンディション] の状態にする。



I2CWBYTE 一覧へ戻る
I2Cデバイスに、データを1バイト送信します。

書式 I2cwbyte variable
注釈
variable 送信するデータ。 (バイト型変数 または 定数)

参照 I2CSTART , I2CSTOP , I2CRBYTE , I2CREPSTART

 
I2CSEND命令の一連の動作を、個別に実行させることができます。
・エラーが発生すると、内部変数 [ERR] にエラー情報が入ります。 (エラー無し = 0 、 エラー有り = 1)
 
(例) I2C-EEPROMの書き込み
I2cstart ' [スタート・コンディション] の状態にする。
I2cwbyte Slvadr_w ' 8bitスレーブ・アドレス(書き込み)を送信。
I2cwbyte Eepadr ' EEPROMアドレスを送信。
I2cwbyte Value ' データを書き込む。
I2cstop ' [ストップ・コンディション] の状態にする。
Waitms 10 ' 待ち時間タイマー。



I2CRBYTE 一覧へ戻る
I2Cデバイスから、データを1バイト受信します。

書式 I2crbyte variable , ACK/NACK
注釈
variable 受信データを入れる変数。 (バイト型変数)
ACK/NACK ACK  − 引き続きデータを受信する場合。
NACK − この1バイトで、データの受信を終了する場合。

参照 I2CSTART , I2CSTOP , I2CWBYTE , I2CREPSTART

 
I2CRECEIVE命令の一連の動作を、個別に実行させることができます。
・エラーが発生すると、内部変数 [ERR] にエラー情報が入ります。 (エラー無し = 0 、 エラー有り = 1)
 
(例) I2C-EEPROMの読み出し
I2cstart ' [スタート・コンディション] の状態にする。
I2cwbyte Slvadr_w ' 8bitスレーブ・アドレス(書き込み)を送信。
I2cwbyte Eepadr ' EEPROMアドレスを送信。
I2cstart ' [再スタート] の状態にする。
I2cwbyte Slvadr_r ' 8bitスレーブ・アドレス(読み出し)を送信。
I2crbyte Value , Nack ' データを読み出す。
I2cstop ' [ストップ・コンディション] の状態にする。



CONFIG I2CSLAVE 一覧へ戻る
I2C スレーブ・モードを構成します。

書式 Config I2cslave = SlvAdr , Int = interrupt , Timer = tmr
注釈
SlvAdr I2Cスレーブ・デバイスとしての8bitアドレス。
 (例えば &H60で&H61は不可)
interrupt 使用する割込み。 (デフォルトは[ INT0 ])
tmr 使用するタイマー。 (デフォルトは[ TIMER0 ])

参照 CONFIG TWISLAVE

 
・有料のアドオン・ライブラリが必要です。
・デフォルト以外の割り込みを使用する場合には、ライブラリコードを変更する必要があります。
・デフォルト以外のタイマーを使用する場合には、ライブラリコードを変更する必要があります。

 △ 動作未確認



CONFIG TWISLAVE 一覧へ戻る
TWI スレーブ・モードを構成し、スレーブ・アドレス、ビット・レートを設定します。

書式 Config Twislave = SlvAdr , Btr = length , Bitrate = Bvalue ,
             Save =
Option [ , Gencall = gca]
注釈
SlvAdr TWIスレーブ・デバイスとしての8bitアドレス。 (偶数アドレス)
length 受信するバイト数。
Bvalue クロック周波数。 ( 400KHz = 400000 , 100KHz = 100000 )
Option NOSAVE − 割り込み時に、全レジスターの待避・復帰を行いません。
SAVE − 割り込み時に、全レジスターの待避・復帰を行います。
gca General call addressの設定。 (1=アクティブ)

参照 CONFIG I2CSLAVE

 
・有料のアドオン・ライブラリが必要です。

 △ 動作未確認



CONFIG USI 一覧へ戻る
ハードウェアUSIを設定します。

書式 Config Usi = UsiMode , Mode = Mode
Config Usi = UsiMode , Address = I2cAdr
注釈 UsiMode Twimaster − USIをTWIマスター・モードで設定します。
 このモードは、割り込みを使用しません。
Twislave − USIをTWIスレーブ・モードで設定します。
 USIは、バック・グラウンドの割り込みモードで動作します。
Mode = Normal − クロック周波数を100KHzに設定。
Fast − クロック周波数を400KHzに設定。
 USIをマスター・モードで使用することのみを目的としています。
I2cAdr I2C / TWIの8bitスレーブ・アドレス。 (8ビットのアドレス表記)
このアドレスは、USIをスレーブとして使用する場合にのみ必要です。

参照 I2CSTART , I2CSTOP , I2CWBYTE , I2CRBYTE , I2CREPSTART

 
○TWIマスターモード
 ・Config Usi = Twimaster は、BASCOM製品版に含まれるライブラリ[i2c_USI.LBX]が必要です。
 ・USIがTWI / I2Cモードで使用される場合、SCLとSDAにプルアップ抵抗が必要です。
 ・SCLおよびSDAピンを自由に選択することはできません。
 ・固定のSCLおよびSDAピンを使用する必要があります。
 ・マスター・モードでは変数を必要とせず、使用することもありません。
 ・また、割り込みも使用しません。

○TWIスレーブモード
 ・Config Usi = Twislave は、有料アドオンであるi2cスレーブ・アドオンのライブラリ[i2c_usi_slave.lib]
  が必要です。
 ・USIがTWI / I2Cモードで使用される場合、SCLとSDAにプルアップ抵抗が必要です。
 ・SCLおよびSDAピンを自由に選択することはできません。
 ・固定のSCLおよびSDAピンを使用する必要があります。
 ・変数TWI_USI_OVS、TWI_slaveAddress、Twi、Twi_btr、およびTwi_btwは、コンパイラによって
  作成されます。 (これらはすべてバイトです)
 ・USI割り込みは可能ですが、ENABLE INTERRUPTSを使用してグローバルな割り込みを有効に
  する必要があります。
 ・USIスレーブのコードは、割り込み処理として実行されています。
 ・USIの割り込みがあるたびに、スレーブのコードが実行されます。
 ・あなたのBASICコードは、いくつかのイベントで低レベルのスレーブコードから呼び出されます。
 ・スレーブのアプリケーションに、これらのラベルをすべて含める必要があります。
 ・これらのすべてのサブルーチンにコードを書く必要はありません。

 
(例) I2C-EEPROMの読み出し
config usi = twimaster , mode = fast ' USIをTWIマスター・モードで設定する。
i2cinit ' I2CバスのSCL/SDAラインを初期化する。
I2cstart ' [スタート・コンディション] の状態にする。
I2cwbyte Slvadr_w ' 8bitスレーブ・アドレス(書き込み)を送信。
I2cwbyte Eepadr ' EEPROMアドレスを送信。
i2crepstart ' [再スタート] の状態にする。
I2cwbyte Slvadr_r ' 8bitスレーブ・アドレス(読み出し)を送信。
I2crbyte Value1 , Ack ' データを読み出す。
I2crbyte Value2 , Nack ' データを読み出す。
I2cstop ' [ストップ・コンディション] の状態にする。





   電子工作の部屋 Top へ 前のページへ戻る