• Martes 5 de Noviembre de 2024, 20:49

Autor Tema:  De Float A Integer  (Leído 1318 veces)

Bixix

  • Miembro activo
  • **
  • Mensajes: 45
    • Ver Perfil
De Float A Integer
« en: Lunes 6 de Junio de 2005, 14:40 »
0
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