LED Sequence Using Serial Float For Frequency Not Looping

Hello everyone! I have a sketch which is supposed to run a sequence of 4 LEDs at a frequency that the user inputs - once - at the beginning (the Adafruit motor controller library is used for a reason). The sequence starts off at a pre-set speed and then accelerates until it reaches the desired speed that the user requested (at which point it should continue to run at that speed). I am already aware that I shouldn't be using floats as delays, but that is a simple fix that I intend to do very soon. The problem I am having, since adding the code to get a float from serial, is that the sequence does not run like it is supposed to. What is happening, is the IF statement makes the loop run only once (when it should run continuously). I do not know how to fix this, but I do know that the error is because of that. If you would like to test the code, then input "/2.0" (2Hz = 500microseconds) to the serial monitor. Here is my sketch:

#include <AFMotor.h>

AF_DCMotor A(1);
AF_DCMotor B(2);
AF_DCMotor C(3);
AF_DCMotor D(4);

float timer;
float userTimer;
float accelleration;
float userInput;
float floatFromPC = 0.0;

const byte numChars = 10;
char receivedChars[numChars];
char tempChars[numChars];

boolean newData = false;

void setup()
{
  Serial.begin(2000000);
  Serial.println("Please Enter Frequency As /0.0");
  Serial.println();
  while (Serial.available() == 0);  //wait for serial input
  accelleration = (0.01);
  timer = (25);
  A.setSpeed(255);
  B.setSpeed(255);
  C.setSpeed(255);
  D.setSpeed(255);
}

void loop()
{
  {
  recvWithStartEndMarkers();
  if (newData == true)
    {
      strcpy(tempChars, receivedChars);
      parseData();
      showParsedData();
      newData = false;
      if (timer > userTimer)
      {
        Serial.print(timer);
        Serial.print('\n');
        timer = timer - accelleration;
          A.run(FORWARD);
            delayMicroseconds(timer);
          A.run(BACKWARD);
        Serial.print(timer);
        Serial.print('\n');
        timer = timer - accelleration;
          B.run(FORWARD);
            delayMicroseconds(timer);
          B.run(BACKWARD);
        Serial.print(timer);
        Serial.print('\n');
        timer = timer - accelleration;
          C.run(FORWARD);
           delayMicroseconds(timer);
          C.run(BACKWARD);
        Serial.print(timer);
        Serial.print('\n');
        timer = timer - accelleration;
          D.run(FORWARD);
            delayMicroseconds(timer);
          D.run(BACKWARD);
      }
      else if (timer <= userTimer)
      {
        Serial.print(userTimer);
        Serial.print('\n');
          A.run(FORWARD);
            delayMicroseconds(userTimer);
          A.run(BACKWARD);
        Serial.print(userTimer);
        Serial.print('\n');
          B.run(FORWARD);
            delayMicroseconds(userTimer);
          B.run(BACKWARD);
        Serial.print(userTimer);
        Serial.print('\n');
          C.run(FORWARD);
            delayMicroseconds(userTimer);
          C.run(BACKWARD);
        Serial.print(userTimer);
        Serial.print('\n');
          D.run(FORWARD);
            delayMicroseconds(userTimer);
          D.run(BACKWARD);
      }
      else
      {
        Serial.print(userTimer);
        Serial.print('\n');
          A.run(FORWARD);
            delayMicroseconds(userTimer);
          A.run(BACKWARD);
        Serial.print(userTimer);
        Serial.print('\n');
          B.run(FORWARD);
            delayMicroseconds(userTimer);
          B.run(BACKWARD);
        Serial.print(userTimer);
        Serial.print('\n');
          C.run(FORWARD);
            delayMicroseconds(userTimer);
          C.run(BACKWARD);
        Serial.print(userTimer);
        Serial.print('\n');
          D.run(FORWARD);
            delayMicroseconds(userTimer);
          D.run(BACKWARD);
      }
    }
  }
}

void recvWithStartEndMarkers()
{
  static boolean recvInProgress = false;
  static byte ndx = 0;
  char startMarker = '/';
  char endMarker = '\n';
  char rc;

  while (Serial.available() > 0 && newData == false)
  {
    rc = Serial.read();
    if (recvInProgress == true)
    {
      if (rc != endMarker)
      {
        receivedChars[ndx] = rc;
        ndx++;
        if (ndx >= numChars)
        {
          ndx = numChars - 1;
        }
      }
      else
      {
        receivedChars[ndx] = '\0'; // terminate the string
        recvInProgress = false;
        ndx = 0;
        newData = true;
      }
    }
    else if (rc == startMarker)
    {
      recvInProgress = true;
    }
  }
}

void parseData()
{
  char * strtokIndx;
  strtokIndx = strtok(tempChars, "");
  floatFromPC = atof(strtokIndx);
  userTimer = ((1 / (floatFromPC)) * 1000);
  Serial.println(userTimer);
}

void showParsedData()
{
  Serial.print("Frequency = ");
  Serial.println(floatFromPC);
  Serial.println();
}