AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
AG903_SSCPrmSetSspSetup 関数

SSCSSP_SETUPのレジスタWrite

Syntax
C++
void AG903_SSCPrmSetSspSetup(uint8_t ch, AG903_SSCPrmSspSetup* param);
引数 
説明 
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: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.