c - Arduino函数绝对数组?

标签 c arduino

我的代码运行良好,并在串行监视器上提供输出,直到我添加此功能 调用其停止发送到串行!!

该函数使用输入数组的绝对值填充结果数组。

#define INPUT_SIZE 800

void vabs(double *vec,int vsize,double *result){
  int i;
  for(i=0 ; i<vsize ; ++i)
    result[i] = fabs(vec[i]);
}

double x1[INPUT_SIZE];
int x1size;
double absX1[INPUT_SIZE];
int absX1size;

double Process(int *inputArray,double *qrs){
  int i;

  // Initialization
  for(i=0 ; i<INPUT_SIZE ; ++i)
    x1[i] = (double)inputArray[i];

  x1size = INPUT_SIZE;
  // Cancellation DC drift and normalization
  double meanValue = mean(x1,x1size);
  minus(x1,x1size,meanValue);

  Serial.println(x1[0]);

//  vabs(x1,x1size,absX1);  // Uncomment this line will cause the problem!
  absX1size = x1size;
  *qrs = 5;
  return 10;
}

设置和循环:

void setup(){
  Serial.begin(9600);
  delay(1000);
}

void loop(){
  // This array contains 800 values
  int bArr[]= {59,259,259,250,250,250,83,83,...};
  double qrs = 0;
  double heartRate = Process(bArr,&qrs);
  delay(5000);
}

我使用的是 Arduino Mega (Atmega1280),它具有闪存 128 KB 和 SRAM 8 KB。

最佳答案

而不是 fabs()尝试(result[i] < 0 ? vec[i] * -1 : vec[i]) ,这将显示 fabs() 中是否存在问题。 .

旁注,这里似乎有很多不需要的代码。我假设这是因为您删除了在此处发布的其他部分。

关于c - Arduino函数绝对数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14466691/

相关文章:

c - 不会停止等待用户输入的游戏循环

embedded - Arduino:通过内置 USB 进行应用程序通信?

c++ - 位移位 - 移动移位值

c - 如何编译并运行C代码?

c - C 错误中的套接字

c - strcpy 与 memcpy 用于复制已知大小的 char *

c - 在多个结构指针和数组中为结构指针的成员赋值

c++ - 短程序错误。 C++ 新手,Adafruit LED 灯条,Arduino

arduino - 如何从 arduino 环境中删除库?

c++ - 如何使用多个红外信号来做同样的事情?