从函数返回指针读取值

时间:2019-07-30 08:54:14

标签: c

我正在开发一个代码,我需要在其中读取函数的值,该函数将在指针中返回值。

下面是需要读取其值(* ip)

的函数
int16_t getLastValueFromADC()
{
    volatile uint16_t *ip;

    ip  = GET_FPGA_REGISTER_ADDRESS(REG_CURRENT_ADC_SAMPLE_R);

#ifdef _JSB_BEHAVIOUR_0_65536
    if (tighteningDirectionCCW)
    {
        tempValue = (int16_t)(*ip);
        tempValue = (OFFSET_BB2AD - tempValue);
    }
    else
    {
        tempValue = ((*ip) + OFFSET_BB2AD);
    }
    return ((uint16_t)tempValue);
#endif
    return *ip;
}

我正在使用以下代码读取值:

int16_t vref2v5 = getLastValueFromADC();             
printf("VREF2V5 Status for Torque signal:  %d\n",vref2v5);

未获得期望值,它显示了一些负值数字。

请提出建议

感谢与问候

1 个答案:

答案 0 :(得分:0)

函数的返回类型是16位整数

entityManager

但是用于表示函数要返回的结果的变量是无符号整数。

@Stateless

无符号整数应由编译器以始终为正值的方式进行解析。正则(带符号)整数不是这种情况,在这种情况下,MSB(最高有效位;最左位)确定该值应被视为正值(0)还是负值(1)。