Simulador de injeccion electronica.

Hola.
Estoy haciendo un proyecto para simular un motor a injeccion.
La situacion es la siguiente.
necesito generar un pulso pwm de entre 300 micros y 13000 micros y poder jugar con el tiempo del pulso bajo para aumentar la frecuencia.
El proyecto empezo con un mega pero me limitaba el rango de uso asi que cambie a un due, gener eun codigo para generar la señal y con dos potenciometros puedo cambiar el tiempo y la frecuencia pero al cambiar el tiempo tambien me cambia la frecuencia asi que la diferencia que le pongo al pulso se lo resto al tiempo bajo y funciona pero cuando el tiempo de pulso es superiro al tiempo de frecuencia el arduino se para, con el mega no se para, se reinicia el pulso.

Adjunto link con un video y pongo la parte del codigo en cuestion.
Gracias de antemano.
Un Saludo.

https://www.sendspace.com/file/wqejv7

unsigned int pulso = 8;

void setup()
{

pinMode(pulso, OUTPUT);

}

void loop()
{

unsigned int tiempoA= map(analogRead(A0), 0, 1023, 0, 4095);
unsigned int tiempoB= map(analogRead(A1), 0, 1023, 0, 4095);
unsigned int dif = tiempoA-tiempoB;

digitalWrite(pulso, HIGH); //ponemos la salida digital en alto 300 es el tiempo minimo que necesito

delayMicroseconds((tiempoA*3)+300); //tiempo del diente

digitalWrite(pulso, LOW); //ponemos la salida en bajo

delayMicroseconds(((tiempoB-dif)*3)+300); //Tiempo bajo

}