예제 #1
0
파일: fsl_i2c_hal.c 프로젝트: Btar/HEXIWEAR
/*FUNCTION**********************************************************************
 *
 * Function Name : I2C_HAL_Init
 * Description   : Initialize I2C peripheral to reset state.
 *
 *END*/
void I2C_HAL_Init(I2C_Type * base)
{

    I2C_WR_A1(base, 0u);
    I2C_WR_F(base, 0u);
    I2C_WR_C1(base, 0u);
    I2C_WR_S(base, 0u);
    I2C_WR_C2(base, 0u);
    I2C_WR_FLT(base, 0u);
    I2C_WR_RA(base, 0u);

#if FSL_FEATURE_I2C_HAS_SMBUS
    I2C_WR_SMB(base, 0u);
    I2C_WR_A2(base, 0xc2u);
    I2C_WR_SLTH(base, 0u);
    I2C_WR_SLTL(base, 0u);
#endif  /** FSL_FEATURE_I2C_HAS_SMBUS*/
}
/*FUNCTION**********************************************************************
 *
 * Function Name : I2C_HAL_ConfigSMBCLKLowTimeout
 * Description   : Config SMBCLK low timeout period.
 *
 *END**************************************************************************/
void I2C_HAL_ConfigSMBCLKLowTimeout(I2C_Type *base, uint16_t timeout)
{
    uint16_t highVal = timeout&0xFF00;
    I2C_WR_SLTH(base, highVal>>8);
    I2C_WR_SLTL(base,(timeout&0xFF));
}