public void process() {
    if (start.getValue() == true) {
      if (counter >= to.getValue()) {
        counter = from.getValue();
      }
      started = true;
    }

    if (stop.getValue()) {
      started = false;
    }

    if (delay.getValue() != oldImpuse) {
      oldImpuse = delay.getValue();
      if (timer != null) timer.setDelay(delay.getValue());
    }

    if (reset.getValue() == true) {
      counter = from.getValue();
      outValue.setValue(counter);
      outValue.setChanged(true);
      element.notifyPin(0);
    }
  }