gpt4 book ai didi

c++ - 保持传感器值的峰值

转载 作者:太空宇宙 更新时间:2023-11-04 08:10:15 24 4
gpt4 key购买 nike

我正在做我的大学项目,该项目需要检测来自温度传感器的最大值。我想连续显示它,只有当下一个值高于上一个值时,值才应该改变,否则它应该保持最后一个最大值。

int value=0, peak=0,check=0;
value=adcread(0); //reading value from sensor
check=value; //copying sensor value to a variable
if(check>peak) //checking if sensor value is greater than peak then update the peak
peak=check;
printf("%d",check);

它始终显示与传感器值相同的峰值。此代码不起作用请告诉我这有什么问题。谢谢

最佳答案

这是因为 peak是自动存储中的局部变量,其值始终初始化为零。这会导致两个问题:

  • peak如果传感器结果可能为负,则永远不会更新负值,并且
  • peak每次执行函数时都会初始化为零。

要解决此问题,请更改 peak 的声明如下:

static int peak = INT_MIN;

这移动了 peak从自动存储到静态存储,这意味着变量将在调用期间保留其值。

您需要包括 <limits.h>以便编译。

关于c++ - 保持传感器值的峰值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40056366/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com