Interpolar Dados com o microcontrolador.

Boa dia Pessoal;
Alguém poderia me ajudar com um problema de lógica ?
Estou querendo interpolar dois dados e não consigo escrever está lógica.
Funciona assim:
Dado o valor de rotação, eu tenho um pino do microcontrolador que deve ser ficar em nivel alto.
Mapa:
0 500 1000 1500 2000 2500 RPM -> valor lido do sensor
1 2 2.5 3.3 3.5 3.9 ms -> Valor definido pelo usuário
armazenado na ROM.
O problema é o seguinte, no caso de 0 a 500 rpm o tempo passa de 1 para 2 segundos, ou seja quando a rotação for 250 o tempo devera ser 1.5 ms, mas caso o usuario mude o valor, de 2 para mais ou menos, a curva neste ponto vai alterar, e o ângulo da reta também. O valor do pulso deve ser o mais linear possível entre os dois pontos, no caso 0 a 500 e de 500 a 1000...... , pois visualizando todos os pontos da reta, ela terá uma aparência linear. MAS O QUE IMPORTA É ENTRE OS PONTOS DE ROTAÇÃO.
- Tentei uma lógica com a equação geral da reta, porém meu microcontrolador não tem tempo para resolver os 5 sistemas.
- Tentei com regra de três, porém existe a questão da inclinação da reta.
Pelo que pesquisei, seria o tema interpolação, porém não encontrei nada parecido.
Fico no aguardo da colaboração do pessoal do forum.
Estou usando isso para o meu tcc da faculdade, depois posto mais detalhes.
(utilizando Atmega32 linguagem C codevision).
Grato
Thiago
Alguém poderia me ajudar com um problema de lógica ?
Estou querendo interpolar dois dados e não consigo escrever está lógica.
Funciona assim:
Dado o valor de rotação, eu tenho um pino do microcontrolador que deve ser ficar em nivel alto.
Mapa:
0 500 1000 1500 2000 2500 RPM -> valor lido do sensor
1 2 2.5 3.3 3.5 3.9 ms -> Valor definido pelo usuário
armazenado na ROM.
O problema é o seguinte, no caso de 0 a 500 rpm o tempo passa de 1 para 2 segundos, ou seja quando a rotação for 250 o tempo devera ser 1.5 ms, mas caso o usuario mude o valor, de 2 para mais ou menos, a curva neste ponto vai alterar, e o ângulo da reta também. O valor do pulso deve ser o mais linear possível entre os dois pontos, no caso 0 a 500 e de 500 a 1000...... , pois visualizando todos os pontos da reta, ela terá uma aparência linear. MAS O QUE IMPORTA É ENTRE OS PONTOS DE ROTAÇÃO.
- Tentei uma lógica com a equação geral da reta, porém meu microcontrolador não tem tempo para resolver os 5 sistemas.
- Tentei com regra de três, porém existe a questão da inclinação da reta.
Pelo que pesquisei, seria o tema interpolação, porém não encontrei nada parecido.
Fico no aguardo da colaboração do pessoal do forum.
Estou usando isso para o meu tcc da faculdade, depois posto mais detalhes.
(utilizando Atmega32 linguagem C codevision).
Grato
Thiago