ネームスペース ad7998


説明

AD7998 ADコンバーター用ネームスーペース AD7998, AD7997のレジスタアドレスとコマンドを定義する


列挙型

enum  adcChannel {
  Vin1 = 0, Vin2, Vin3, Vin4,
  Vin5, Vin6, Vin7, Vin8
}
 AD7998 ADCチャンネル指定型 AD7998, AD7997の入力チャンネルを指定するために使用する。 [詳細]

関数

void callBack (bool rcv)
 コールバック関数
void init (void)
 AD7998 初期化
void start (void)
 AD7998 変換開始
shortfract getValue (adcChannel vin)
 AD7998から取得したデータを獲得

変数

const unsigned int CRR = 0
 Conversion Result Register (Read)
const unsigned int ASR = 1
 Alert Status Register (Read/Write)
const unsigned int CR = 2
 Configuration Register (Read/Write)
const unsigned int CTR = 3
 Cycle Timer Register (Read/Write)
const unsigned int DLR1 = 4
 DATALOW Reg CH1 (Read/Write)
const unsigned int DHR1 = 5
 DATAHIGH Reg CH1 (Read/Write)
const unsigned int HR1 = 6
 Hysteresis Reg CH1 (Read/Write)
const unsigned int DLR2 = 7
 DATALOW Reg CH2 (Read/Write)
const unsigned int DHR2 = 8
 DATAHIGH Reg CH2 (Read/Write)
const unsigned int HR2 = 9
 Hysteresis Reg CH2 (Read/Write)
const unsigned int DLR3 = 10
 DATALOW Reg CH3 (Read/Write)
const unsigned int DHR3 = 11
 DATAHIGH Reg CH3 (Read/Write)
const unsigned int HR3 = 12
 Hysteresis Reg CH3 (Read/Write)
const unsigned int DLR4 = 13
 DATALOW Reg CH4 (Read/Write)
const unsigned int DHR4 = 14
 DATAHIGH Reg CH4 (Read/Write)
const unsigned int HR4 = 15
 Hysteresis Reg CH4 (Read/Write)
const unsigned int ch1 = 0x0010
 ad7998::CRのチャンネル指定用。Vin1
const unsigned int ch2 = 0x0020
 ad7998::CRのチャンネル指定用。Vin2
const unsigned int ch3 = 0x0040
 ad7998::CRのチャンネル指定用。Vin3
const unsigned int ch4 = 0x0080
 ad7998::CRのチャンネル指定用。Vin4
const unsigned int ch5 = 0x0100
 ad7998::CRのチャンネル指定用。Vin5
const unsigned int ch6 = 0x0200
 ad7998::CRのチャンネル指定用。Vin6
const unsigned int ch7 = 0x0400
 ad7998::CRのチャンネル指定用。Vin7
const unsigned int ch8 = 0x0800
 ad7998::CRのチャンネル指定用。Vin8
const unsigned int fltr = 0x0008
 ad7998::CRの設定用。フィルタを使う
const unsigned int VinSeq = 0x70
 Mode2コマンド。 ad7998::CRで指定した入力からデータを連続取得
const int AD7998 = 0x20
 AD7997デバイスアドレス
const int initLen = 3
 初期化文字列の長さ
const int cmdLen = 1
 コマンド文字列の長さ
const unsigned char initAD7998Str [initLen] = { ad7998::CR , 0x0F, 0xF0 | ad7998::fltr }
 AD7998初期化文字列
const unsigned char cmdAD7998Read [cmdLen] = { ad7998::VinSeq }
 AD7998コマンド文字列
const int chNum = 8
 ADCチャンネル数
unsigned char rxBuffer [chNum *2] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}
 データ受信バッファ
unsigned char rxValue [chNum *2]
 データ受信バッファ


列挙型

enum ad7998::adcChannel

AD7998 ADCチャンネル指定型 AD7998, AD7997の入力チャンネルを指定するために使用する。

列挙型の値:
Vin1  Mode2コマンド。Vin1からの入力を取得
Vin2  Mode2コマンド。Vin2からの入力を取得
Vin3  Mode2コマンド。Vin3からの入力を取得
Vin4  Mode2コマンド。Vin4からの入力を取得
Vin5  Mode2コマンド。Vin5からの入力を取得
Vin6  Mode2コマンド。Vin6からの入力を取得
Vin7  Mode2コマンド。Vin7からの入力を取得
Vin8  Mode2コマンド。Vin8からの入力を取得

ad7998.h13 行で定義されています。

00013                     {
00014         Vin1 = 0, ///< Mode2コマンド。Vin1からの入力を取得
00015         Vin2,     ///< Mode2コマンド。Vin2からの入力を取得
00016         Vin3,     ///< Mode2コマンド。Vin3からの入力を取得
00017         Vin4,     ///< Mode2コマンド。Vin4からの入力を取得
00018         Vin5,     ///< Mode2コマンド。Vin5からの入力を取得
00019         Vin6,     ///< Mode2コマンド。Vin6からの入力を取得
00020         Vin7,     ///< Mode2コマンド。Vin7からの入力を取得
00021         Vin8      ///< Mode2コマンド。Vin8からの入力を取得
00022     };


関数

void ad7998::callBack ( bool  rcv  ) 

コールバック関数

引数:
rcv 受信コールバックなら1
twi::writeReadAsync() 関数に渡すコールバック。AD7998の変換データ読み込み完了を をトリガにして、受信データの取得を行う。

ad7998.cpp134 行で定義されています。

参照先 AD7998chNumcmdAD7998ReadcmdLenrxBufferrxValuetwi::writeReadAsync().

参照元 start().

00135     {
00136         unsigned int imask;
00137         
00138         imask = cli();  // 割込み禁止
00139         
00140         for ( int i= 0; i<chNum*2; i++ )
00141             rxValue[i] = rxBuffer[i];          // 受信データをコピーしてくる。
00142             
00143         sti(imask);     // 割込み禁止解除
00144 
00145         twi::writeReadAsync( 
00146                 AD7998,             // I2Cデバイス・アドレス(送信)
00147                 cmdAD7998Read,      // Mode2転送を指定するコマンド
00148                 cmdLen,             // コマンド長
00149                 AD7998,             // I2Cデバイス・アドレス(受信)
00150                 rxBuffer,           // データ受信バッファ
00151                 chNum*2,            // データ受信バイト数
00152                 ad7998::callBack    // コールバック関数
00153             );     // Mode2読み出し設定
00154 
00155     }

shortfract ad7998::getValue ( adcChannel  vin  ) 

AD7998から取得したデータを獲得

引数:
vin AD7997のアナログ入力チャンネル番号。1..8の値を指定する。
AD7998から取得したデータを取り出す。vinはピン名である。返り値は 0..1.0の値をとる。

ad7998.cpp109 行で定義されています。

参照先 rxValue.

参照元 afw::processData().

00110     {
00111         unsigned int imask;
00112         shortfract val;
00113         short temp;
00114         int index;
00115         
00116         imask = cli();                              // 割込み禁止
00117         
00118         index = (int)vin*2;                         // チャンネル番号をバイト・インデックスに変換
00119         temp = ( rxValue[index]<<8 ) + rxValue[index+1];     // ビッグ・エンディアンの値を取り出す
00120         temp &= 0x0FFF;                             // チャンネル番号をマクス・オフ
00121         val.v = temp << 3;                          // 12bit値を15bit値(符号付16bitの正の部分)に変換
00122         
00123         sti(imask);                                 // 割込み禁止解除
00124 
00125         return val;
00126     }

void ad7998::init ( void   ) 

AD7998 初期化

TWI上のAD7998を初期化する。

ad7998.cpp95 行で定義されています。

参照元 main().

00096     {
00097     }

void ad7998::start ( void   ) 

AD7998 変換開始

TWI上のAD7998でのMode2での変換を開始する。変換は連続的に行われる。 変換結果は 7998getValueによって取得できる。

ad7998.cpp99 行で定義されています。

参照先 AD7998callBack()initAD7998StrinitLentwi::writeAsync().

参照元 main().

00100     {
00101         twi::writeAsync(    // コントロールレジスタの設定   
00102                     AD7998,             // デバイスアドレス
00103                     initAD7998Str,      // AD7998初期化ストリング
00104                     initLen,            // 初期化ストリング長
00105                     ad7998::callBack    // 終わったらcallBack関数を呼ぶ
00106                   );
00107     }


変数

const int ad7998::AD7998 = 0x20

AD7997デバイスアドレス

AD7998のI2Cアドレス。

ad7998.cpp47 行で定義されています。

参照元 callBack()start().

const int ad7998::chNum = 8

ADCチャンネル数

AD7998のチャンネル数。

ad7998.cpp76 行で定義されています。

参照元 callBack().

const unsigned char ad7998::cmdAD7998Read[cmdLen] = { ad7998::VinSeq }

AD7998コマンド文字列

AD7998のモード2転送で用いるコマンド文字列。

ad7998.cpp70 行で定義されています。

参照元 callBack().

const int ad7998::cmdLen = 1

コマンド文字列の長さ

AD7998に送るコマンド文字列の長さ。

ad7998.cpp59 行で定義されています。

参照元 callBack().

const unsigned char ad7998::initAD7998Str[initLen] = { ad7998::CR , 0x0F, 0xF0 | ad7998::fltr }

AD7998初期化文字列

コントロール・レジスタのアドレス1バイトと、その内容2バイトからなる。

ad7998.cpp65 行で定義されています。

参照元 start().

const int ad7998::initLen = 3

初期化文字列の長さ

AD7998に送る初期化文字列の長さ。

ad7998.cpp53 行で定義されています。

参照元 start().

unsigned char ad7998::rxBuffer[chNum *2] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}

データ受信バッファ

TWI用の受信バッファ。AD7998の変換結果を受け取る。

ad7998.cpp83 行で定義されています。

参照元 callBack().

unsigned char ad7998::rxValue[chNum *2]

データ受信バッファ

ad7998::rxBufferの値を移しておく。

ad7998.cpp90 行で定義されています。

参照元 callBack()getValue().


AudioFrameWorkに対してMon Apr 9 16:33:24 2007に生成されました。  doxygen 1.5.1-p1