我想将温度传感器中的电流与我在程序中使用结构设置的上限值进行比较。如果温度传感器的值超过当前的上限我只想printf
声明。
printf
这段代码有什么问题,无论当前温度是多少,它都不会打印出语句。请假定所有必要的头文件、定义等都在程序中说明。
它作为一个整体工作正常,但我不明白为什么我不能得到一个简单的printf
命令来显示!请假设所有需要的定义都已经做出,并且所有typedef
的 s 都相应地做出了。
这是我的结构
struct temperatureChannel_t { //set a structure that encompasses all of the follow elements in an array
temperature_t temperatureArray;
temperature_t temperatures[MAXSAMPLES];
temperature_t currentTemperature;
temperature_t lowLimit;
temperature_t highLimit;
temperature_t minTemperature;
temperature_t maxTemperature;
};
struct temperatureChannel_t temperatureChannel[MAXCHANNELS];
这是我如何初始化当前上限
void initializeTemperatureSubsystem()
{
currentInsertionPoint = 0;
for(int chID = 0; chID < MAXCHANNELS; chID++)
{
srand(time(NULL));
for(int i = 1; i < MAXSAMPLES; i++)
{
temperatureChannel[chID].temperatures[i] = rand()%100;
}
temperatureChannel[chID].lowLimit = 50;
temperatureChannel[chID].highLimit = 100;
temperatureChannel[chID].currentTemperature = 75;
averageIsValid = FALSE; //NEW line
}
}
这是我设置当前温度的方式,首先调用函数
setCurrentTemperature(CH1, temperatureSensor1Reading);
然后函数
temperature_t setCurrentTemperature(int channelID, temperature_t temperature)
{
return temperatureChannel[channelID].currentTemperature;
}
首先,我使用我正在使用的当前频道调用该函数
compareHighLimit(CH1);
然后这是不会打印出 printf 命令的函数
void compareHighLimit (int channelID)
{
if (temperatureChannel[channelID].currentTemperature > temperatureChannel[channelID].highLimit)
printf("you have activated the high alarm!!");
}