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 void init( unsigned int sclkMHz ); 00029 00030 /** 割込みハンドラ 00031 * @return 割込みがTWI由来のものであった場合には真を、そうでない場合には偽を返す。 00032 * 00033 * TWIに関連する割り込みをすべて処理する。、 00034 */ 00035 bool ISR( void ); 00036 00037 /** TWIデバイスへの非同期書きこみ 00038 * @param address 書き込みを行うデバイスの7bit TWIアドレス。 00039 * @param data 書き込むデータの配列 00040 * @param count 書きこみデータ数。単位はバイト。 00041 * @param callback 送信完了割り込み時に呼び出されるコールバック関数。NULLを指定すると何も呼び出されない。 00042 * 00043 * 指定されたデバイスへの書き込みを行う。この関数は、デバイスへの書き込みを 00044 * 内蔵TWIに指示すると、直ちに呼び出し元に戻る。デバイスへの書きこみが完了すると 00045 * パラメータで指定したcallback関数が呼び出される。callback関数が呼ばれるまで、 00046 * 呼び出し側はdata[]の内容を変更してはならない。 00047 */ 00048 00049 void writeAsync( 00050 unsigned char address, 00051 const unsigned char data[], 00052 unsigned int count, 00053 void ( * callback )( bool ) 00054 ); 00055 00056 /** TWIデバイスからの非同期書読み込み 00057 * @param address 読み込みを行うデバイスの7bit TWIアドレス。 00058 * @param data 読み込むデータの受信バッファ 00059 * @param count 読み込むデータ数。単位はバイト。 00060 * @param callback 受信完了割り込み時に呼び出されるコールバック関数。NULLを指定すると何も呼び出されない。 00061 * 00062 * 指定されたデバイスからの読み込みを行う。この関数は、デバイスへの読み込みを 00063 * 内蔵TWIに指示すると、直ちに呼び出し元に戻る。デバイスへの読みこみが完了すると 00064 * パラメータで指定したcallback関数が呼び出される。callback関数が呼ばれるまで、 00065 * 呼び出し側はdata[]の内容を読み出してはならない。 00066 */ 00067 void readAsync( 00068 unsigned char address, 00069 unsigned char data[], 00070 unsigned int count, 00071 void ( * callback )( bool ) 00072 ); 00073 00074 /** TWIデバイスへの非同期書き込み/読み込み 00075 * @param wAddress 書き込みを行うデバイスの7bit TWIアドレス。 00076 * @param wData 書き込むデータの配列 00077 * @param wCount 書きこみデータ数。単位はバイト。 00078 * @param rAddress 読み込みを行うデバイスの7bit TWIアドレス。 00079 * @param rData 読み込むデータの受信バッファ 00080 * @param rCount 読み込むデータ数。単位はバイト。 00081 * @param callback 送信完了割り込み時に呼び出されるコールバック関数。NULLを指定すると何も呼び出されない。 00082 * 00083 * 指定されたデバイスへの書き込みを行う。この関数は、デバイスへの書き込みを 00084 * 内蔵TWIに指示すると、直ちに呼び出し元に戻る。デバイスへの書きこみが完了すると 00085 * ただちに読み出しを行う。読み出しが終了したら。 00086 * パラメータで指定したcallback関数が呼び出される。callback関数が呼ばれるまで、 00087 * 呼び出し側はdata[]の内容を変更してはならない。 00088 */ 00089 void writeReadAsync( 00090 unsigned char wAddress, 00091 const unsigned char wData[], 00092 unsigned int wCount, 00093 unsigned char rAddress, 00094 const unsigned char rData[], 00095 unsigned int rCount, 00096 void ( * callback )( bool ) 00097 ); 00098 00099 }; 00100 00101