SRQ要求をするには?(スレーブのみ)

[スレーブのみ]

long Ret;

char szText[100];

 

m_StsByte.GetWindowText(szText, sizeof(szText));    //ステータスバイトをダイアログから取得します。

sscanf(szText, "%X", &Stb);

Ret = GpStb(Stb);                                  //Stbの情報を書き込みます。

 

Ret = GpSrq(1);                                    //EOIをつけてSRQを送信します。

 

image\Line.gif

説明:まずStb変数にステータスバイトを設定します。そしてGpStb関数によって自分(スレーブ)のPD7210Cチップに情報を書き込みます。

そしてGpSrq関数によってSRQ要求をします。ポーリングされるとGpStb関数によって設定された(1バイトの)データがマスタに対して自動的に送られます。しかし要求はマスタ側が受け取るか取らないかを決めるので、スレーブ側が要求を出したからといってマスタ側が要求を受け取るとは限りません。サンプルではタイマを使って要求が受け入れられたかどうかのチェックを繰り返しています。受け入れられたときにはタイマが停止するようになっています。