* ・どなたでも自由に改変して使用することができます。\r
* ・このソフトウェアは無保証です。このファイルに記載されている情報・コードを\r
* 使用する場合は、ユーザの責任において行ってください。これらの使用に\r
- * 起因し、ユーザまたは第三者に生じた損害に関し、当社は一切の責任を\r
- * 負いません。\r
+ * 起因し、ユーザまたは第三者に生じた損害に関し、当社は一切の責任を負いません。\r
*/\r
\r
#include <cdefBF592-A.h>\r
#define NUM_SAMPLES (256)\r
\r
/* SPORT RX DMA割り込みのプロトタイプ宣言 */\r
-#if 0\r
-EX_INTERRUPT_HANDLER(s_sport_rx_isr);\r
-#else\r
void s_sport_rx_isr() __attribute__((interrupt_handler));\r
-#endif\r
/* オーディオ処理用関数 */\r
-void s_audio_process(const int32_t* p_rxbuf, int32_t* p_txbuf, int32_t count);\r
+void s_audio_process(const int32_t* src, int32_t* des, int32_t count);\r
\r
/* TWI(I2C)初期化用関数 */\r
void s_twi_init(void);\r
}\r
}\r
\r
- /* 割り込みハンドラをIVG9に登録 */\r
-#if 0\r
- register_handler(ik_ivg9, s_sport_rx_isr);\r
-#else\r
+ /*\r
+ * 割り込みハンドラをIVG9に登録\r
+ */\r
*pEVT9 = s_sport_rx_isr;\r
asm("ssync;");\r
asm volatile ("cli %0; bitset (%0, 9); sti %0; csync;": "+d"(iii)); // set IMASK bit\r
asm("ssync;");\r
*pSIC_IMASK |= IRQ_DMA1;\r
asm("ssync;");\r
-#endif\r
\r
- /* SPORT RXの設定 */\r
- /* 外部クロック、外部SYNC、MSB First */\r
- /* 24ビットデータ、 ステレオ */\r
+ /*\r
+ * SPORT RXの設定\r
+ * 外部クロック、外部SYNC、MSB First\r
+ * 24ビットデータ、 ステレオ\r
+ */\r
*pSPORT0_RCR1 = RFSR | RCKFE;\r
*pSPORT0_RCR2 = SLEN(31) | RSFSE;\r
\r
- /* SPORT TXの設定 */\r
- /* 外部クロック、外部SYNC、MSB First */\r
- /* 24ビットデータ、 ステレオ */\r
+ /*\r
+ * SPORT TXの設定\r
+ * 外部クロック、外部SYNC、MSB First\r
+ * 24ビットデータ、 ステレオ\r
+ */\r
*pSPORT0_TCR1 = TFSR | TCKFE;\r
*pSPORT0_TCR2 = SLEN(31) | TSFSE;\r
\r
- /* DMA1(SPORT0 RX)の設定 */\r
+ /*\r
+ * DMA1(SPORT0 RX)の設定\r
+ */\r
*pDMA1_PERIPHERAL_MAP = 0x1000;\r
*pDMA1_CONFIG = FLOW_AUTO | DI_EN | DI_SEL | DMA2D | WDSIZE_32 | WNR;\r
*pDMA1_START_ADDR = sf_sport_rxbuf;\r
*pDMA1_Y_COUNT = 2;\r
*pDMA1_Y_MODIFY = sizeof(int32_t);\r
\r
- /* DMA2(SPORT0 TX)の設定 */\r
+ /*\r
+ * DMA2(SPORT0 TX)の設定\r
+ */\r
*pDMA2_PERIPHERAL_MAP = 0x2000;\r
*pDMA2_CONFIG = FLOW_AUTO | DMA2D | WDSIZE_32;\r
*pDMA2_START_ADDR = sf_sport_txbuf;\r
*pDMA2_Y_MODIFY = sizeof(int32_t);\r
asm("ssync;");\r
\r
- /* DMAを有効 */\r
+ /*\r
+ * DMAを有効\r
+ */\r
*pDMA1_IRQ_STATUS = DMA_DONE;\r
*pDMA1_CONFIG |= DMAEN;\r
*pDMA2_CONFIG |= DMAEN;\r
asm("ssync;");\r
\r
- /* SPORT0を有効 */\r
+ /*\r
+ * SPORT0を有効\r
+ */\r
*pSPORT0_TCR1 |= TSPEN;\r
*pSPORT0_RCR1 |= RSPEN;\r
asm("ssync;");\r
return 0;\r
}\r
\r
-void s_audio_process(const int32_t* p_rxbuf, int32_t* p_txbuf, int32_t count)\r
+/**\r
+ * @brief オーディオ処理を実行する。\r
+ *\r
+ * @param src 処理元バッファ。\r
+ * @param des 処理後バッファ。\r
+ */\r
+void s_audio_process(const int32_t *src, int32_t *des, int32_t count)\r
{\r
- /* 受信バッファのデータを送信バッファにコピー */\r
- memcpy(p_txbuf, p_rxbuf, count * sizeof(int32_t));\r
+ memcpy(des, src, sizeof(int32_t) * count);\r
}\r
\r
-/* TWI(I2C)初期化 */\r
+/**\r
+ * @brief TWI(I2C)を初期化する。\r
+ */\r
void s_twi_init(void)\r
{\r
*pTWI_CONTROL = 0;\r
asm("ssync;");\r
}\r
\r
+/**\r
+ * @brief TWI(I2C)バスに書き込む。\r
+ *\r
+ * @param slave_addr スレーブアドレス。\r
+ * @param rstart スタートコンディション。\r
+ * @param p_data データ。\r
+ * @param write_cnt 書き込むデータバイト数。\r
+ *\r
+ * @retval NO_ERROR エラーなし。\r
+ * @retval TWI_ERROR_NAK エラー。\r
+ */\r
int32_t s_twi_master_write(uint8_t slave_addr, int32_t rstart, const uint8_t* p_data, int32_t write_cnt)\r
{\r
int32_t l_idx;\r
*pTWI_INT_STAT = *pTWI_INT_STAT;\r
*pTWI_MASTER_STAT = BUFWRERR | BUFRDERR | LOSTARB | ANAK | DNAK;\r
*pTWI_MASTER_ADDR = slave_addr;\r
+\r
/*\r
* Send first byte\r
*/\r
asm("ssync;");\r
}\r
\r
- /* 転送終了まで待機 */\r
+ /*\r
+ * 転送終了まで待機\r
+ */\r
while ((*pTWI_INT_STAT & MCOMP) == 0U) {\r
asm("ssync;");\r
}\r