00001 #pragma once 00002 /** \file twi.h 00003 * \brief TWIヘッダーファイル 00004 * 00005 * このファイルはADSP-BF537のTWI用ドライバのヘッダファイルである。 00006 * 00007 * 注意: Analog Devices Incおよびアナログ・デバイセズ株式会社は、 00008 * このプログラムの利用によって生じるいかなる問題にも責任を負わ 00009 * ない。 00010 */ 00011 00012 /** twiネームスペース 00013 * 00014 * TWI関連の資源を格納する名前空間。 00015 */ 00016 namespace twi{ 00017 00018 /** TWI初期化関数 00019 * @param sclkMHz ADSP-BF537のSCLK周波数をMHz単位で指定する。133MHzのときには、133を指定する。 00020 * 00021 * この関数は、ADSP-BF537の内蔵TWIを初期化する。最初にsclkパラメータを 00022 * 元にプリスケーラーを設定する。次にデバイダを設定して、TWIのビット 00023 * クロックを10kHzにする。 00024 * 00025 * TWIはマスターに設定する。割込みは、データ送受信のほか、送受信完了(MCOMP)割込みも 00026 * 許可する。 00027 */ 00028 00029 void init( unsigned int sclkMHz ); 00030 /** TWIスタート関数 00031 * 00032 * この関数はダミー 00033 */ 00034 void start( void ); 00035 /** 割込みハンドラ 00036 * @return 割込みがTWI由来のものであった場合には真を、そうでない場合には偽を返す。 00037 * 00038 * TWIに関連する割り込みをすべて処理する。、 00039 */ 00040 bool ISR( void ); 00041 00042 /** TWIデバイスへの非同期書きこみ 00043 * @param address 書き込みを行うデバイスの7bit TWIアドレス。 00044 * @param data 書き込むデータの配列 00045 * @param count 書きこみデータ数。単位はバイト。 00046 * @param callback 送信完了割り込み時に呼び出されるコールバック関数。NULLを指定すると何も呼び出されない。 00047 * 00048 * 指定されたデバイスへの書き込みを行う。この関数は、デバイスへの書き込みを 00049 * 内蔵TWIに指示すると、直ちに呼び出し元に戻る。デバイスへの書きこみが完了すると 00050 * パラメータで指定したcallback関数が呼び出される。callback関数が呼ばれるまで、 00051 * 呼び出し側はdata[]の内容を変更してはならない。 00052 */ 00053 00054 void writeAsync( 00055 unsigned char address, 00056 const unsigned char data[], 00057 unsigned int count, 00058 void ( * callback )( bool ) 00059 ); 00060 00061 /** TWIデバイスからの非同期書読み込み 00062 * @param address 読み込みを行うデバイスの7bit TWIアドレス。 00063 * @param data 読み込むデータの受信バッファ 00064 * @param count 読み込むデータ数。単位はバイト。 00065 * @param callback 受信完了割り込み時に呼び出されるコールバック関数。NULLを指定すると何も呼び出されない。 00066 * 00067 * 指定されたデバイスからの読み込みを行う。この関数は、デバイスへの読み込みを 00068 * 内蔵TWIに指示すると、直ちに呼び出し元に戻る。デバイスへの読みこみが完了すると 00069 * パラメータで指定したcallback関数が呼び出される。callback関数が呼ばれるまで、 00070 * 呼び出し側はdata[]の内容を読み出してはならない。 00071 */ 00072 void readAsync( 00073 unsigned char address, 00074 unsigned char data[], 00075 unsigned int count, 00076 void ( * callback )( bool ) 00077 ); 00078 00079 /** TWIデバイスへの非同期書き込み/読み込み 00080 * @param wAddress 書き込みを行うデバイスの7bit TWIアドレス。 00081 * @param wData 書き込むデータの配列 00082 * @param wCount 書きこみデータ数。単位はバイト。 00083 * @param rAddress 読み込みを行うデバイスの7bit TWIアドレス。 00084 * @param rData 読み込むデータの受信バッファ 00085 * @param rCount 読み込むデータ数。単位はバイト。 00086 * @param callback 送信完了割り込み時に呼び出されるコールバック関数。NULLを指定すると何も呼び出されない。 00087 * 00088 * 指定されたデバイスへの書き込みを行う。この関数は、デバイスへの書き込みを 00089 * 内蔵TWIに指示すると、直ちに呼び出し元に戻る。デバイスへの書きこみが完了すると 00090 * ただちに読み出しを行う。読み出しが終了したら。 00091 * パラメータで指定したcallback関数が呼び出される。callback関数が呼ばれるまで、 00092 * 呼び出し側はdata[]の内容を変更してはならない。 00093 */ 00094 void writeReadAsync( 00095 unsigned char wAddress, 00096 const unsigned char wData[], 00097 unsigned int wCount, 00098 unsigned char rAddress, 00099 const unsigned char rData[], 00100 unsigned int rCount, 00101 void ( * callback )( bool ) 00102 ); 00103 00104 }; 00105 00106