3 * @brief オーディオDMAに同期して動くタスク
4 * @param exinf コンフィギュレータがタスクに引き渡す変数。
6 * @ref dma_intr_handler からのSEM_I2SDMA セマフォ・シグナルを受けて
7 * しかるべきデータ・バッファを特定し、信号処理を行う。
9 * なお、このタスクはシステム起動時にはインアクティブである。
10 * 明示的にアクティベートして始めて動作を開始する。
16 #include "i2s_subsystem.h"
19 * @brief タスクプライオリティ。(オーディオタスク)
21 #define TSKPRI_AUDIO 10
22 #define TSKSTK_AUDIO STACK_SIZE
25 * @defgroup BLACKTANK_LPC1769_TASK_AUDIO_CLIENT
26 * @ingroup BLACKTANK_LPC1769_TASK_AUDIO
30 #define AUDIO_PARAM_MODE 0 /**< @brief モードパラメータ。 */
31 #define AUDIO_PARAM_VAR0 1 /**< @brief VAR0パラメータ。 */
32 #define AUDIO_PARAM_VAR1 2 /**< @brief VAR1パラメータ。 */
33 #define AUDIO_PARAM_VAR2 3 /**< @brief VAR2パラメータ。 */
34 #define AUDIO_PARAM_VAR3 4 /**< @brief VAR3パラメータ。 */
36 #define AUDIO_VALUE_MODE_THROUGH 0 /**< @brief モードに対する値。 */
37 #define AUDIO_VALUE_MODE_VOCAL_CANCEL 1 /**< @brief モードに対する値。 */
38 #define AUDIO_VALUE_MODE_FIR 2 /**< @brief モードに対する値。 */
39 #define AUDIO_VALUE_MODE_IIR 3 /**< @brief モードに対する値。 */
42 * @brief オーディオパラメータを設定する。
44 * このマクロを使うとオーディオパラメータを設定することができる。
45 * マクロはタスクコンテキスト内から呼び出す事ができる。
46 * @param PARAM 設定対象パラメータ。
47 * @param VALUE 設定対象パラメータに対する設定値。
49 #define TSKAPI_AUDIO_PARAM(PARAM,VALUE) \
50 snd_dtq(DTQ_AUDIOPARAM, \
52 (((PARAM) & 0x000F) << 12) \
53 | (((VALUE)& 0x0FFF) << 0)))
60 * @defgroup BLACKTANK_LPC1769_TASK_AUDIO
61 * @ingroup BLACKTANK_LPC1769_TASK
65 void task_audio(intptr_t exinf);
66 void dma_intr_handler(intptr_t exinf);
67 struct I2S_AUDIO_DATA* get_audio_data(void);