全てを折りたたみ
AG903ライブラリリファレンス
AG903_SSCPrmSetSspSetup 関数
sscprm.c
SSC Primitive
Body Source
SSCSSP_SETUPのレジスタWrite
Syntax
C++
void
AG903_SSCPrmSetSspSetup
(uint8_t
ch
,
AG903_SSCPrmSspSetup
*
param
);
ファイル
sscprm.c
引数
引数
説明
uint8_t ch
[in] SSPチャネル
AG903_SSCPrmSspSetup* param
[in] 設定パラメータ
返値
void
説明
SSCSSP_SETUPのレジスタWrite
本文ソース
コピコード
1:
void
AG903_SSCPrmSetSspSetup(uint8_t ch,
AG903_SSCPrmSspSetup
* param) 2: { 3: uint32_t val; 4: 5:
ASSERT
(NULL != param); 6:
ASSERT
(
AG903_SSP_CH_NUM
> ch); 7: 8: val =
AG903_SSC
->SSP_SETUP; 9: val &= ~(0xFF << (ch*8)); 10: 11:
switch
(ch) { 12:
case
0: 13: val |= (param->mclk_div <<
AG903_SSC_SSP_SETUP_SSP0_MCLK_DIV_POS
) &
AG903_SSC_SSP_SETUP_SSP0_MCLK_DIV_MSK
; 14:
if
(
AG903_SSC_PINDIR_OUTPUT
== param->mclk_dir) { 15: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP0_MCLK_DIR_POS
); 16: } 17:
if
(
AG903_SSC_SSPMODE_HLFDPLX
== param->mode) { 18: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP0_MODE_POS
); 19: } 20:
if
(
AG903_SSC_PINDIR_OUTPUT
== param->dir) { 21: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP0_DIR_POS
); 22: } 23:
break
; 24:
case
1: 25: val |= (param->mclk_div <<
AG903_SSC_SSP_SETUP_SSP1_MCLK_DIV_POS
) &
AG903_SSC_SSP_SETUP_SSP1_MCLK_DIV_MSK
; 26:
if
(
AG903_SSC_PINDIR_OUTPUT
== param->mclk_dir) { 27: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP1_MCLK_DIR_POS
); 28: } 29:
if
(
AG903_SSC_SSPMODE_HLFDPLX
== param->mode) { 30: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP1_MODE_POS
); 31: } 32:
if
(
AG903_SSC_PINDIR_OUTPUT
== param->dir) { 33: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP1_DIR_POS
); 34: } 35:
break
; 36:
case
2: 37: val |= (param->mclk_div <<
AG903_SSC_SSP_SETUP_SSP2_MCLK_DIV_POS
) &
AG903_SSC_SSP_SETUP_SSP2_MCLK_DIV_MSK
; 38:
if
(
AG903_SSC_PINDIR_OUTPUT
== param->mclk_dir) { 39: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP2_MCLK_DIR_POS
); 40: } 41:
if
(
AG903_SSC_SSPMODE_HLFDPLX
== param->mode) { 42: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP2_MODE_POS
); 43: } 44:
if
(
AG903_SSC_PINDIR_OUTPUT
== param->dir) { 45: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP2_DIR_POS
); 46: } 47:
break
; 48:
case
3: 49: val |= (param->mclk_div <<
AG903_SSC_SSP_SETUP_SSP3_MCLK_DIV_POS
) &
AG903_SSC_SSP_SETUP_SSP3_MCLK_DIV_MSK
; 50:
if
(
AG903_SSC_PINDIR_OUTPUT
== param->mclk_dir) { 51: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP3_MCLK_DIR_POS
); 52: } 53:
if
(
AG903_SSC_SSPMODE_HLFDPLX
== param->mode) { 54: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP3_MODE_POS
); 55: } 56:
if
(
AG903_SSC_PINDIR_OUTPUT
== param->dir) { 57: val |= (1 <<
AG903_SSC_SSP_SETUP_SSP3_DIR_POS
); 58: } 59:
break
; 60:
default
: 61: 62:
break
; 63: } 64: 65:
AG903_SSC
->SSP_SETUP = val; 66: 67:
return
; 68: }
グループ
SSC Primitive
リンク
sscprm.c
,
SSC Primitive
,
Body Source
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.
内容
|
インデックス
|
ホーム