gpt4 book ai didi

c - 移动平均算法问题

转载 作者:行者123 更新时间:2023-11-30 15:49:19 25 4
gpt4 key购买 nike

我想实时平滑值。由于某种原因,这段代码似乎会使微 Controller (arduino - atmel)崩溃或至少不响应。这是我的代码

float tilttemp[] = { 1,1,1,1,1,1,1,1 };
float rolltemp[] = { 1,1,1,1,1 };
float pantemp[] = { 1,1,1,1,1 };
float tiltausgabe = 0;
float rollausgabe = 0;
float panausgabe = 0;
void trackerOutput()
{

for(int i=0; i < sizeof(tilttemp) - 1; i++)
{
tilttemp[i] = tilttemp[i+1];
}

tilttemp[sizeof(tilttemp)] = tiltAngleLP; //tiltAngleLP is a value that is available

tiltausgabe = 0;
for(int i=0; i < sizeof(tilttemp); i++)
{
tiltausgabe += tilttemp[i];
}

tiltausgabe = tiltausgabe/(sizeof(tilttemp));


Serial.print(tiltausgabe);
Serial.print(",");
Serial.print(rollausgabe);
Serial.print(",");
Serial.println(panausgabe);
}

如果我留下一切,除了

    Serial.print(tiltausgabe);
Serial.print(",");
Serial.print(rollausgabe);
Serial.print(",");
Serial.println(panausgabe);

out 我得到了输出,所以第一部分出了问题。

最佳答案

你不需要sizeof。您需要 countof。如果你想知道那是什么,那就是:

#define countof(a) (sizeof(a)/sizeof((a)[0]))

array[ countof(array) ] = ...

不会设置数组的最后一个元素。它将设置超出最后一个元素的元素。

关于c - 移动平均算法问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16369537/

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