DACwrite()関数とDACwrite_byte()関数の動作を、 信号波形と対応させて説明します。
「DACwrite()」関数は 8ビットのディジタル値をD/A変換器に送る関数です。
void DACwrite(unsigned char d);
と定義されます。
この関数はテキストにソースが与えられているので、
どのように動作するのかを理解してください。
関数のソースと
信号波形の関係は、次のようになります。
初期状態は、「SCLK」 (Serial CLocK) が高レベル、 「/CS」 (Chip Select) が高レベルです。 「DIN」 (Digital serial data INput) は、 この時点ではまだ与えません。 初期状態にするプログラムは、
CS_DAC(1); CK(1);
の部分です。
CS_DAC()やCK()については、
関数のソース
または説明を見ましょう。
次に、「/CS」を低レベルにします。
これは、
CS_DAC(0);
で行われます。
16ビットのデータを8ビット×2回に分けて送信するプログラムが、
DACwrite_byte(0xd0); DACwrite_byte(0x02);
になります。
最後に、
CS_DAC(1);
で、「/CS」を高レベルにします。
これで、1セットのデータ転送になります。
同様の操作がもう一度行われます。
void DACwrite_byte(unsigned char d);
で定義されます。
8ビットの数値「d
」をD/A変換器に送ります。
この関数の中身を作成します。
この関数の動作と信号波形の関係は下図のようになります。