Beispiel #1
0
void
series_smooth(series_t *series, series_t *res, int window)
{
  point_t tmp;
  double sum;
  int i, j;

  series_init(res);

  if (window < 0) {
    return;
  } 
  else if (window % 2 == 0) { // need a odd number for mean smoothing
    window += 1;
  }

  for (i = 0; i < series->pts_used; i++) {
    if (i > (window / 2) && i < (series->pts_used - (window / 2))) {
      sum = 0.0;
      for (j = i - (window / 2); j < i + (window / 2); j++) {
        sum += series->pts[j].y;
      }
      tmp.x = series->pts[i].x;
      tmp.y = sum / window;

      series_append(res, tmp);
    }
  }
}
//Initialize functions for the board
//Starts up 
void init(void) {
    setup_flash();
    setup_clocks();
    setup_nvic();
    systick_init(SYSTICK_RELOAD_VAL);
    board_setup_gpio();
    setup_timers();
    board_setup_usb();
    series_init();
    disableDebugPorts();

}