/**
- * \file ad7999.c
- * \author: suikan
- * \brief AD799x I2C ADCからデータを読み込み、API経由でアプリケーションへ渡す
+ * @file ad7999.c
+ * @author: suikan
+ * @brief AD799x I2C ADCからデータを読み込み、API経由でアプリケーションへ渡す
*/
#endif
/**
- * \brief ADU999 制御タスク
- * \param exinf タスク引数。ADC799xが持つ7bitのI2Cアドレスを指定する。
+ * @brief ADU999 制御タスク
+ * @param exinf タスク引数。ADC799xが持つ7bitのI2Cアドレスを指定する。
*/
void ad7999_task(VP_INT exinf)
{
}
/**
- * \brief ボリューム値の取得
- * \param ch 0から始まるチャンネル指定番号。AD7999は3まで
- * \return 32bit符号付き固定小数点数のボリューム値
+ * @brief ボリューム値の取得
+ * @param ch 0から始まるチャンネル指定番号。AD7999は3まで
+ * @return 32bit符号付き固定小数点数のボリューム値
*/
fract32 ad7999_get_volume(unsigned int ch)
/**
- * \file ad7999.h
- * \author takemasa
- * \brief AD7999制御プログラム
- * \details
+ * @file ad7999.h
+ * @author takemasa
+ * @brief AD7999制御プログラム
+ * @details
* AD7999制御タスク及びAPI。cfgファイルから読み込んで使う
*/
}
/**
- * \brief ボリューム値の取得
- * \param ch 0から始まるチャンネル指定番号。Amakusaはボリュームを1個持っているだけなので、
+ * @brief ボリューム値の取得
+ * @param ch 0から始まるチャンネル指定番号。Amakusaはボリュームを1個持っているだけなので、
* 3までのインデックスを扱う
*/
}
/**
- * \brief ボリューム値の設定
- * \param ch 0から始まるチャンネル指定番号。AD7999は3まで
- * \param value 32bit符号付き固定小数点数のボリューム設定値
- * \details
+ * @brief ボリューム値の設定
+ * @param ch 0から始まるチャンネル指定番号。AD7999は3まで
+ * @param value 32bit符号付き固定小数点数のボリューム設定値
+ * @details
* ボリュームに初期値を与える。
*/
/**
* \breif ボリューム入力のチャンネル数
- * \details
+ * @details
* BSPが持つボリュームのチャンネル数。ここでいうボリュームはポテンショメータに限らない。
* ロータリーエンコーダーなども含む。また、システムが複数種のボリューム(例えばADCと
* ロータリーエンコーダー)を持つ場合には、それらのチャンネル数の総和である。
/**
- * \brief ボード・イニシャライザ
- * \param exinf 0を渡す。関数からは無視される。
- * \details
+ * @brief ボード・イニシャライザ
+ * @param exinf 0を渡す。関数からは無視される。
+ * @details
* BSP用のイニシャライザである。アプリケーションに依存せず、uzumeが
* 必要とする初期化処理をおここで行う。具体的にはI2S用のピンの割付を行う
*/
}
/**
- * \brief ボリューム値の取得
- * \param ch 0から始まるチャンネル指定番号。Amakusaはボリュームを1個持っているだけなので、
+ * @brief ボリューム値の取得
+ * @param ch 0から始まるチャンネル指定番号。Amakusaはボリュームを1個持っているだけなので、
* 3までのインデックスを扱う
*/
}
/**
- * \brief ボリューム値の設定
- * \param ch 0から始まるチャンネル指定番号。AD7999は3まで
- * \param value 32bit符号付き固定小数点数のボリューム設定値
- * \details
+ * @brief ボリューム値の設定
+ * @param ch 0から始まるチャンネル指定番号。AD7999は3まで
+ * @param value 32bit符号付き固定小数点数のボリューム設定値
+ * @details
* ボリュームに初期値を与える。
*/
/**
* \breif ボリューム入力のチャンネル数
- * \details
+ * @details
* BSPが持つボリュームのチャンネル数。ここでいうボリュームはポテンショメータに限らない。
* ロータリーエンコーダーなども含む。また、システムが複数種のボリューム(例えばADCと
* ロータリーエンコーダー)を持つ場合には、それらのチャンネル数の総和である。
#define UZUME_NUM_VOLUME 4
/**
- * \brief ボード・イニシャライザ
- * \param exinf 0を渡す。関数からは無視される。
- * \details
+ * @brief ボード・イニシャライザ
+ * @param exinf 0を渡す。関数からは無視される。
+ * @details
* BSP用のイニシャライザである。アプリケーションに依存せず、uzumeが
* 必要とする初期化処理をおここで行う。具体的にはI2S用のピンの割付を行う
*/
/**
- * \file i2c_subsystem.c
- * \brief i2cペリフェラルをマスターモードで使うためのサブシステム
- * \details
+ * @file i2c_subsystem.c
+ * @brief i2cペリフェラルをマスターモードで使うためのサブシステム
+ * @details
* CMSISを使い、i2cペリフェラルをマスターモードで使用する
*/
#include "i2c_subsystem.h"
/**
- * \brief チップ上のI2Cペリフェラルの数
+ * @brief チップ上のI2Cペリフェラルの数
*/
#define I2CNUM 1
/**
- * \brief I2C ペリフェラルのタイムアウト時間(mSec)
+ * @brief I2C ペリフェラルのタイムアウト時間(mSec)
*/
#define I2C_TIMEOUT 100
/**
- * \brief TWIペリフェラルの管理用ステート型。内部ステートマシンの状態値。
+ * @brief TWIペリフェラルの管理用ステート型。内部ステートマシンの状態値。
*/
enum I2C_STATE {
I2C_XMT_ENTRY,
/**
- * \brief I2C管理用構造体
+ * @brief I2C管理用構造体
*/
struct I2C_MASTER_CONTROL_TYPE {
ID signal; /**< データの送受信が全部終わったときに割り込みハンドラからタスクに知らせるためのセマフォ */
};
/**
- * \brief i2cペリフェラルを管理するための構造体群。
+ * @brief i2cペリフェラルを管理するための構造体群。
*/
static struct I2C_MASTER_CONTROL_TYPE i2c_control[I2CNUM];
}
/**
- * \brief i2c 割り込みサービスルーチン本体
- * \param peripheral I2Cペリフェラル番号。0から始まる。
- * \details
+ * @brief i2c 割り込みサービスルーチン本体
+ * @param peripheral I2Cペリフェラル番号。0から始まる。
+ * @details
* 割り込みサービスルーチンから呼び出す。この関数が割り込みハンドラの実体である。
* チップに複数のTWIペリフェラルがある場合には、引数に当該TWIペリフェラル番号を与えて呼び出す。
*
/**
- * \details
+ * @details
* TOPPERS/JSPでは、DEF_INHから割り込みハンドラに引数を渡せない。そのため、この関数内で
* i2c_master_handler() を引数0決め打ちで呼ぶ。
*/
/**
- * \brief i2c イニシャライザ
- * \param exinf ペリフェラル番号。TWI0ならば、0を渡す。
- * \details
+ * @brief i2c イニシャライザ
+ * @param exinf ペリフェラル番号。TWI0ならば、0を渡す。
+ * @details
* I2C用のコントロールブロックのI2C相当部分を初期化する。
*/
void i2c_master_initialize(VP_INT exinf)
/**
- * \file i2c_subsystem.h
+ * @file i2c_subsystem.h
*
* \date 2012/09/01
- * \author: takemasa
- * \brief twiペリフェラルをマスターモードで使用する
+ * @author: takemasa
+ * @brief twiペリフェラルをマスターモードで使用する
*
*/
#include <kernel.h>
/**
* \defgroup I2C_SUBSYSTEM I2Cを使用するためのサブシステム
- * \details
+ * @details
* i2c_subsystemは、LPC1768の内蔵I2Cペリフェラルを使用するための関数群である。この関数群はTOPPERS/ASP用に開発されており、CMSISの下位
* ライブラリを使用して、割り込みを使ったポーリングなしの制御を実現している。タスクから呼び出された関数は割り込みハンドラとセマフォを使って
* 通信しながら指定されたI2Cスレーブ・デバイスの制御を行う。また、関数群は排他制御されており、一つのi2Cペリフェラルを複数のタスクが同時に使用
/*@{*/
/**
- * \brief TWIデバイス制御関数への引き数値が間違っている。
+ * @brief TWIデバイス制御関数への引き数値が間違っている。
*/
#define I2C_ERR_WRONGPARAM 0x40000
/**
- * \brief TWIデバイス制御関数へ指定した送受信データ長が長すぎる。
+ * @brief TWIデバイス制御関数へ指定した送受信データ長が長すぎる。
*/
#define I2C_ERR_TOOLONGBUFFER 0x20000
/**
- * \brief TWIデバイスがタイムアウトした。
+ * @brief TWIデバイスがタイムアウトした。
*/
#define I2C_ERR_TIMEOUT 0x10000
/**
- * \brief i2cマスターモードの割り込みサービスルーチン
- * \details
+ * @brief i2cマスターモードの割り込みサービスルーチン
+ * @details
* この間数は、i2cをマスターモードとして使う際の割り込みサービスルーチン本体である。 i2c_master_read()等の関数と強調しながら
* 動作する。データ転送が終わると、あらかじめ設定されたコールバックを呼び出してタスクに通知する。
*
/**
- * \brief i2cマスターモード動作用の初期化を行う
- * \param exinf ペリフェラル番号を渡す. TWI0なら0。
- * \details
+ * @brief i2cマスターモード動作用の初期化を行う
+ * @param exinf ペリフェラル番号を渡す. TWI0なら0。
+ * @details
* この関数は i2c0_master_handler() が i2c_master_read() 等の関数と同期するためのセマフォの設定を行う。
* 呼び出しは明示的に行わず、コンフィギュレーションファイルからATT_INIを使ってシステムに登録する。
*
/**
- * \brief I2C マスター書き込み関数
- * \param peripheral マイコンのI2Cペリフェラルの番号。TWI0なら0
- * \param slave 7bitで表すI2Cペリフェラルの番号。bit0:6のみ使い、bit7以上は0にすること。
- * \param write_data ペリフェラルに書き込むデータ・バイト列
- * \param write_count ペリフェラルに書き込むデータの長さ。単位はバイト。最大254。
- * \return エラーがなければ0
- * \details
+ * @brief I2C マスター書き込み関数
+ * @param peripheral マイコンのI2Cペリフェラルの番号。TWI0なら0
+ * @param slave 7bitで表すI2Cペリフェラルの番号。bit0:6のみ使い、bit7以上は0にすること。
+ * @param write_data ペリフェラルに書き込むデータ・バイト列
+ * @param write_count ペリフェラルに書き込むデータの長さ。単位はバイト。最大254。
+ * @return エラーがなければ0
+ * @details
* 引数 peripheral を使って、アドレス slave のI2Cデバイスに対する書き込みを行う関数。
* この関数はブロッキング関数である。つまり、読み込みを開始すると、その終了まで待って
int i2c_master_write( int peripheral, int slave, unsigned char write_data[], int write_count );
/**
- * \brief I2C マスター読み込み関数
- * \param peripheral マイコンのI2Cペリフェラルの番号。TWI0なら0
- * \param slave 7bitで表すI2Cペリフェラルの番号。bit0:6のみ使い、bit7以上は0にすること。
- * \param read_data ペリフェラルから読み込むデータ・バッファ
- * \param read_count ペリフェラルから読み込むデータの長さ。単位はバイト。最大254。
- * \return エラーがなければ0。処理がタイムアウトならば処理ステータス
- * \details
+ * @brief I2C マスター読み込み関数
+ * @param peripheral マイコンのI2Cペリフェラルの番号。TWI0なら0
+ * @param slave 7bitで表すI2Cペリフェラルの番号。bit0:6のみ使い、bit7以上は0にすること。
+ * @param read_data ペリフェラルから読み込むデータ・バッファ
+ * @param read_count ペリフェラルから読み込むデータの長さ。単位はバイト。最大254。
+ * @return エラーがなければ0。処理がタイムアウトならば処理ステータス
+ * @details
* 引数 peripheral を使って、アドレス slave のI2Cデバイスからの読み込みを行う関数。
* この関数はブロッキング関数である。つまり、読み込みを開始すると、その終了まで待って
int i2c_master_read( int peripheral, int slave, unsigned char read_data[], int read_count);
/**
- * \brief I2C マスター書き込み読み込み関数
- * \param peripheral マイコンのI2Cペリフェラルの番号。TWI0なら0。
- * \param slave 7bitで表すI2Cペリフェラルの番号。bit0:6のみ使い、bit7以上は0にすること。
- * \param write_data ペリフェラルに書き込むデータ・バイト列
- * \param write_count ペリフェラルに書き込むデータの長さ。単位はバイト。最大254。
- * \param read_data ペリフェラルから読み込むデータ・バッファ
- * \param read_count ペリフェラルから読み込むデータの長さ。単位はバイト。最大254。
- * \return エラーがなければ0。
- * \details
+ * @brief I2C マスター書き込み読み込み関数
+ * @param peripheral マイコンのI2Cペリフェラルの番号。TWI0なら0。
+ * @param slave 7bitで表すI2Cペリフェラルの番号。bit0:6のみ使い、bit7以上は0にすること。
+ * @param write_data ペリフェラルに書き込むデータ・バイト列
+ * @param write_count ペリフェラルに書き込むデータの長さ。単位はバイト。最大254。
+ * @param read_data ペリフェラルから読み込むデータ・バッファ
+ * @param read_count ペリフェラルから読み込むデータの長さ。単位はバイト。最大254。
+ * @return エラーがなければ0。
+ * @details
* 引数 peripheral を使って、アドレス slave のI2Cデバイスに対する書き込みを行う関数。
*
* この間数は、まず slave に対して write_data バッファから write_count 個のデータを
/**
- * \file rotenc.c
- * \author Shinichiro Nakamura
- * \brief AD799x I2C ADCからデータを読み込み、API経由でアプリケーションへ渡す
+ * @file rotenc.c
+ * @author Shinichiro Nakamura
+ * @brief AD799x I2C ADCからデータを読み込み、API経由でアプリケーションへ渡す
*/
#include <t_services.h>
static fract32 values[NUM_CH];
/**
- * \brief rotenc制御タスク
- * \param exinf タスク引数。
+ * @brief rotenc制御タスク
+ * @param exinf タスク引数。
*/
void rotenc_task(VP_INT exinf)
{
}
/**
- * \brief ボリューム値の取得
- * \param ch 0から始まるチャンネル指定番号。(3まで)
- * \return 32bit符号付き固定小数点数のボリューム値
+ * @brief ボリューム値の取得
+ * @param ch 0から始まるチャンネル指定番号。(3まで)
+ * @return 32bit符号付き固定小数点数のボリューム値
*/
fract32 rotenc_get_volume(unsigned int ch)
}
/**
- * \brief ボリューム値の設定
- * \param ch 0から始まるチャンネル指定番号。rotencは3まで
- * \param value 32bit符号付き固定小数点数のボリューム設定値
- * \details
+ * @brief ボリューム値の設定
+ * @param ch 0から始まるチャンネル指定番号。rotencは3まで
+ * @param value 32bit符号付き固定小数点数のボリューム設定値
+ * @details
* ボリュームに初期値を与える。
*/
void rotenc_set_volume(unsigned int ch, fract32 value)
/**
- * \file rotenc.h
- * \author Shinichiro Nakamura
- * \brief ROTENC制御プログラム
- * \details
+ * @file rotenc.h
+ * @author Shinichiro Nakamura
+ * @brief ROTENC制御プログラム
+ * @details
* ROTENC制御タスク及びAPI。cfgファイルから読み込んで使う
*/
#include "i2c_subsystem.h"
/**
- * \brief コーデック初期化データ列の長さ
- * \details
+ * @brief コーデック初期化データ列の長さ
+ * @details
* SGTL5000に与える初期化データの長さである。長さはレジスタアドレスとデータの組が
* 何組であるかを示す。
*/
#include "i2s_subsystem.h"
#include "i2c_subsystem.h"
/**
- * \brief コーデック初期化データ列の長さ
- * \details
+ * @brief コーデック初期化データ列の長さ
+ * @details
* TLV320AIC23に与える初期化データの長さである。長さはレジスタアドレスとデータの組が
* 何組であるかを示す。
*/
#endif
/**
- * \brief CODEC初期化データ列
- * \details
+ * @brief CODEC初期化データ列
+ * @details
* TLV320AIC23Bを初期化するためのデータ列である。
*/
static unsigned char tlv320aic23init[CODECINITDATALEN][2] =