Hola amigos,
Tengo un problemilla con un código de control automático de ganancia, consigo el resultado en float, y para trabajar con el dsPIC30F6014 necesito que esta variable sea int. He intentado cambiar de tipo a lo "bestia".. poniendo (int) pero no me redondea bien...
He encontrado información en Internet, pero no he podido conseguir resultados..
me podeis hechar una mano?
Gracias.
Este sería el código:
RXBUF0 es el buffer de entrada, y TXBUF0 es el de salida.
Fractional es un int.
He intentado multiplicar por 10000 y después hacer el cambio..
void __attribute__((__interrupt__)) _DCIInterrupt(void) {
xxx[0]=RXBUF0;
if (xxx[0]>=xmin)
{
h[k]=h[k-1]+mu*(nivel-abs(y[k-1]));
}
else
h[k]=h[k-1];
if(h[k]<=0)
{
h[k]=0.0001;
}
if (h[k]>=hmax)
{
h[k]=hmax;
}
//h[k]=min(h[k],hmax);
y[0]=(h[k]*xxx[0]);
//y[0] = y[0]*10000;
//y[0] = (abs(y[0]))/1000;
//y_final[0] = (fractional)((y[0])/10000);
TXBUF0=(int)(y[0]);
k++;
if(k == 79)
{
k = 0;
}
}
GRACIAS