Error: (195) expression syntax
Error: (195) expression syntax
我有一个为 PIC18 和 PIC24 编译的代码库。
在为PIC24上的新传感器编写驱动程序时,我为PIC18重新编译,压力计算失败:
{
// Normal operation, valid data
uint32_t rawPressure = ((ssc_sr_1[0] & 0x3F) << 8) + ssc_sr_2[0];
filter_pressure_left = (uint16_t)(MIN_PRESSURE_PA + (rawPressure - MIN_PRESSURE_RAW)*(MAX_PRESSURE_PA-MIN_PRESSURE_PA)/(MAX_PRESSURE_RAW-MIN_PRESSURE_RAW));
}
编译时,抛出错误 i2c.c:546: error: (195) expression syntax
(第 546 行是 filter_pressure_left =
行)。
我看不出在语法上有什么错误可以抛出这个错误,这是由它在使用 xc16-gcc 编译时没有被抛出来支持的。
编译器版本:
- XC16-GCC V1.23
- XC8 V1.33
请求的附加信息周围使用的值:
DECLARE unsigned char ssc_sr_1[2];
DECLARE unsigned char ssc_sr_2[2];
#define MAX_PRESSURE_PA 249
#define MIN_PRESSURE_PA -249
#define MAX_PRESSURE_RAW 14745 // 90% of 2^14
#define MIN_PRESSURE_RAW 1638 // 10% of 2^14
空格空格空格!
将第二行更改为:
filter_pressure_left = (uint16_t)(MIN_PRESSURE_PA + (rawPressure - MIN_PRESSURE_RAW) * (MAX_PRESSURE_PA - MIN_PRESSURE_PA) / (MAX_PRESSURE_RAW - MIN_PRESSURE_RAW));
编译没有错误。
供将来遇到此问题的人参考 - 将您的等式拆分为多行以准确确定哪部分失败了 - 在我的情况下 (MAX_PRESSURE_PA-MIN_PRESSURE_PA)
导致了错误并心不在焉地添加空格并重新 -编译治愈它。
我有一个为 PIC18 和 PIC24 编译的代码库。
在为PIC24上的新传感器编写驱动程序时,我为PIC18重新编译,压力计算失败:
{
// Normal operation, valid data
uint32_t rawPressure = ((ssc_sr_1[0] & 0x3F) << 8) + ssc_sr_2[0];
filter_pressure_left = (uint16_t)(MIN_PRESSURE_PA + (rawPressure - MIN_PRESSURE_RAW)*(MAX_PRESSURE_PA-MIN_PRESSURE_PA)/(MAX_PRESSURE_RAW-MIN_PRESSURE_RAW));
}
编译时,抛出错误 i2c.c:546: error: (195) expression syntax
(第 546 行是 filter_pressure_left =
行)。
我看不出在语法上有什么错误可以抛出这个错误,这是由它在使用 xc16-gcc 编译时没有被抛出来支持的。
编译器版本:
- XC16-GCC V1.23
- XC8 V1.33
请求的附加信息周围使用的值:
DECLARE unsigned char ssc_sr_1[2];
DECLARE unsigned char ssc_sr_2[2];
#define MAX_PRESSURE_PA 249
#define MIN_PRESSURE_PA -249
#define MAX_PRESSURE_RAW 14745 // 90% of 2^14
#define MIN_PRESSURE_RAW 1638 // 10% of 2^14
空格空格空格!
将第二行更改为:
filter_pressure_left = (uint16_t)(MIN_PRESSURE_PA + (rawPressure - MIN_PRESSURE_RAW) * (MAX_PRESSURE_PA - MIN_PRESSURE_PA) / (MAX_PRESSURE_RAW - MIN_PRESSURE_RAW));
编译没有错误。
供将来遇到此问题的人参考 - 将您的等式拆分为多行以准确确定哪部分失败了 - 在我的情况下 (MAX_PRESSURE_PA-MIN_PRESSURE_PA)
导致了错误并心不在焉地添加空格并重新 -编译治愈它。