我正在开发一个代码,我需要在其中读取函数的值,该函数将在指针中返回值。
下面是需要读取其值(* 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);
未获得期望值,它显示了一些负值数字。
请提出建议
感谢与问候
答案 0 :(得分:0)
函数的返回类型是16位整数
entityManager
但是用于表示函数要返回的结果的变量是无符号整数。
@Stateless
无符号整数应由编译器以始终为正值的方式进行解析。正则(带符号)整数不是这种情况,在这种情况下,MSB(最高有效位;最左位)确定该值应被视为正值(0)还是负值(1)。