Hallo Freunde,

"Leider" warnt mich der Compiler, dass er kein "return" Statement findet. Jedoch klappt das jetzt auch so, wie es im Code steht.
Wie löst man solch ein Problem? Wie gebe ich zwei verschiedene "Rückgabewerte" zurück?

vielen dank schonmal


Code:
uint16_t read_Drucksensor(uint8_t Druck_Temperatur)                    
{
    uint16_t Druck_Byte_High = 0;
    uint8_t Druck_Byte_Low = 0;
    uint16_t Temperatur_Byte_High = 0;
    uint8_t Temperatur_Byte_Low = 0;
    int16_t Druck = 0;
    int16_t Temperatur = 0;
    long Druck_Byte_High_Low = 0;
    long Temperatur_Byte_High_Low = 0;
    
    sei();
    i2c_rep_start(0x50+I2C_READ);
    Druck_Byte_High =        i2c_readAck();
    Druck_Byte_Low  =        i2c_readAck();
    Temperatur_Byte_High =    i2c_readAck();
    Temperatur_Byte_Low =    i2c_readNak();
    i2c_stop();

    if (Druck_Temperatur == 0)
    {
        Druck_Byte_High = Druck_Byte_High & 0b00111111;
        Druck_Byte_High = Druck_Byte_High << 8;
        Druck_Byte_High_Low = Druck_Byte_Low | Druck_Byte_High;
        Druck = ((Druck_Byte_High_Low - 1638) * 100 / (14745 - 1638) ) ;
        return (Druck);
    }
    


    if (Druck_Temperatur == 1)
    {
        Temperatur_Byte_Low = Temperatur_Byte_Low >> 5;
        Temperatur_Byte_High_Low = Temperatur_Byte_High << 3 | Temperatur_Byte_Low;
        Temperatur = (((Temperatur_Byte_High_Low * 2000) / 2047) - 562 );
        return (Temperatur);
    }
    

    
}