uso de decimales con delay

Hola, soy nuevo en el mundo del arduino y bueno estoy desarrollando un proyecto que consiste en calcular los rpm de una rueda para calcular cuanto tiempo debe pasar para que pase cierta cantidad de cable. Yo decido la cantidad de metros de cable , y el programa calcula el tiempo. Pero tengo errores con el tiempo, aveces me sale el tiempo en negativo, adjunto parte del código.

switch (pulsacion) {
      case 'A':
        delay(200);
        digitalWrite(motor2,LOW);
        tecla = "";
        digitos = 0;
        cuadro=0;
        currentMillis = millis();
        lcd.clear();

        tecla.toCharArray(cadena, 9);
        cantidadMetros = atol(cadena); //tiempo=metros/(rpm*2*pi/60 *radio)
        cantidadMetros = cantidadMetros*100;
        //delay(999);
        
         
        // Gestionar el desbordamiento
        if ((unsigned long)(currentMillis - previousMillis) >= 1000)
        
        {
          detachInterrupt(digitalPinToInterrupt(encoder));
          Rpm = (100 * cont) / (200*(millis() - antes));
          antes = millis();
          cont = 0;
          attachInterrupt(digitalPinToInterrupt(encoder), funRpm, FALLING);
          previousMillis = millis();;
          
        }
        
        tiempo=cantidadMetros/(Rpm*2*(3.14/60) *0.03);//0.03 es el radio
                      
        tiempo=(tiempo*1000000);//tiempo en microsegundos
        lcd.setCursor(0, 0);
        lcd.print("CORTANDO...");
        lcd.setCursor(0, 1);
        lcd.print(tiempo);
        lcd.setCursor(10, 1);
        lcd.print(Rpm);
        lcd.print("RPM");
        delayMicroseconds(tiempo);
        digitalWrite(motor2,HIGH);
        delay(150);
        digitalWrite(mordaza,LOW);
               
        
        //lcd.clear();
        
        break;