0

I have a program that reads from an I2C pressure sensor. I'm getting the following error when I build the project: "conflicting types for 'PressureSensorRd'"

void getI2CPumpPressure(UINT32 index)
{
    uint16_t value = 0;
    uint8_t delete = 0;
    I2C_RESULT    result;

    result = PressureSensorRd(delete, &value);
}


STATIC_DECL I2C_RESULT PressureSensorRd(uint8_t devReg8, uint16_t *pRdDataDest)
{
    I2C_RESULT    result;

    result = I2cRdUint16FromReg8(Pressure_Sensor_I2C_DEV_ADR, devReg8, pRdDataDest);

    if (result != I2C_RESULT_SUCCESS)
    {
        result = I2cRdUint16FromReg8(Pressure_Sensor_I2C_DEV_ADR, devReg8, pRdDataDest);

        if (result != I2C_RESULT_SUCCESS)
        {
            result = I2cRdUint16FromReg8(Pressure_Sensor_I2C_DEV_ADR, devReg8, pRdDataDest);

            if (result != I2C_RESULT_SUCCESS)
            {
                result = I2cRdUint16FromReg8(Pressure_Sensor_I2C_DEV_ADR, devReg8, pRdDataDest);
            }
        }
    }

    return (result);
}
xiv014
  • 3
  • 1

1 Answers1

2

You attempt to call PressureSensorRd before it is declared. As a result, the function is implicitly declared as int PressureSensorRd(). This conflicts with the actual definition of the function.

You need to add a declaration for PressureSensorRd before getI2CPumpPressure:

STATIC_DECL I2C_RESULT PressureSensorRd(uint8_t devReg8, uint16_t *pRdDataDest);

void getI2CPumpPressure(UINT32 index)
{
    uint16_t value = 0;
    uint8_t delete = 0;
    I2C_RESULT    result;

    result = PressureSensorRd(delete, &value);
}


STATIC_DECL I2C_RESULT PressureSensorRd(uint8_t devReg8, uint16_t *pRdDataDest)
{
    ...
dbush
  • 205,898
  • 23
  • 218
  • 273