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

I2Cモジュール初期化

Syntax
C++
int32_t AG903_I2CMgrInit(uint8_t ch);
引数 
説明 
uint8_t ch 
[in] I2Cチャネル番号(0~1) 

初期化結果

返値の詳細 
説明 
正常終了 
-AG903_EINVAL 
引数異常、デフォルト設定値異常 
-AG903_EFAULT 
処理失敗(割込みハンドラ登録失敗) 

内部状態の初期化とSCLクロック設定をします。システム起動時にCALLして下さい。 

SCLは以下の定義に従って設定されます。 

AG903_I2C_DFLT_SCL , AG903_I2C_DFLT_GSR , AG903_I2C_DFLT_TSR 

使用を中止するときは必要に応じアプリでAG903_INTMgrDisableIntによりI2Cの割り込みを無効にして下さい。

1: int32_t AG903_I2CMgrInit(uint8_t ch) 2: { 3: AG903_INTMgrHdrPrm inthdr; 4: int32_t retval = AG903_ENONE; 5: int32_t hdrid; 6: 7: if(AG903_I2C_CH_NUM <= ch) { 8: return -AG903_EINVAL; 9: } 10: 11: I2CMgr_InitState(ch); 12: 13: if(0 >= I2cChStat[ch].hdrid) { 14: inthdr.atr = AG903_INT_HLNG; 15: inthdr.intno = AG903_IRQ44_IIC0+ch; 16: inthdr.func = (void*)I2cIntHdr[ch]; 17: hdrid = AG903_INTMgrSetHandler(&inthdr); 18: if(0 >= hdrid) { 19: return -AG903_EFAULT; 20: } 21: I2cChStat[ch].hdrid = hdrid; 22: } 23: 24: AG903_INTMgrEnableInt(AG903_IRQ44_IIC0+ch); 25: 26: retval = I2CMgr_SetFrequency(ch, AG903_I2C_DFLT_SCL); 27: 28: return retval; 29: }
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.