Problema ao parar motor brushless

Ae pessoal!

Fiz um código para acelerar e desacelerar o motor, podendo escolher para qual rotação e em quanto tempo quero fazer esse processo. O meu problema está em trabalhar com rotações baixas: Se for muito baixa(abaixo de 800ms) o motor não arranca(fica tremendo de um lado para outro) e se for baixa(para 830ms), a ponto de fazer o motor arrancar, não consigo mais desligar, mesmo jogando o sinal mínimo.

Deixei o ESC para trabalhar entre 700 e 2000 milissegundos, mas, para arrancar legal, verifiquei que o sinal deve ser em torno de 800 milissegundos. Por isso, meu programa começa em 800, vai até o sinal que eu quiser e volta para 800. Depois desse processo, o sinal cai para 700.

Preciso de mais alguma etapa para fazer o motor parar com qualquer sinal? Já vi alguns videos em que o motor funciona e para certinho, mas não consigo fazer aquilo com o meu.

Vaaleu!

Sem codigo fica dificil de ajudar, ne??

Na verdade não coloquei o código pq é daquele jeito que falei, simples mesmo, com intervalo de funcionamento do ESC de 700 a 2000 milissegundos. Os problemas que tenho são: o motor não roda quando o sinal está abaixo de 800 milissegundos; e quando coloco algo em torno de 800 milissegundos ele roda na rotação mínima e não para mais.

A base do codigo é:

rot = digite um valor em milissegundos dentro do intervalo 700 a 2000
tmp_acel = digite um valor de tempo para acelerar
tmp_cte = digite um valor de tempo para permanecer no sinal digitado
tmp_desacel = digite um valor de tempo para desacelerar

//acelerando --> tem um cálculo saber o valor da aceleração/desaceleração e este é incrementado/decrementado a cada iteração
//o valor de i é transformado em milissegundos no intervalo de 700 a 2000 por uma função de transferência
for(i=0; i<=rot; i+=aceleracao)
{
motor.writeMicroseconds(funcao_transferencia(i))
delay(100)
}

while(tmp_cte!=0)
{
tmp_cte-=0.1
delay(100);
}

for(i=rot; i>=0; i-=desaceleracao)
{
motor.writeMicroseconds(funcao_transferencia(i))
delay(100)
}

//para desligar o motor estou fazendo
motor.writeMicroseconds(700)

Minha dúvida é: o que mais preciso fazer para conseguir iniciar o motor após incrementar poucas vezes o 700 e como parar o motor sempre, com qualquer valor de sinal colocado?

Estou usando um ESC hobbywing flyfun.