我希望实时平滑价值观。出于某种原因,这段代码似乎使微控制器(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我得到了输出,所以第一部分出了问题。
答案 0 :(得分:1)
您不希望sizeof
。你想要countof
。
如果你想知道那是什么,那就是:
#define countof(a) (sizeof(a)/sizeof((a)[0]))
和
array[ countof(array) ] = ...
不会设置array
的最后一个元素。
它会将元素设置为超出最后一个元素。