Autor Tema: [CCs] Divicion entre 1000  (Leído 1068 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado darck_khronos

  • PIC18
  • ****
  • Mensajes: 493
[CCs] Divicion entre 1000
« en: 21 de Septiembre de 2012, 00:59:44 »
Que tal compañeros, disculpen pero me tope que con pequeño problema que es el siguiente:
  Cuando realizo una divicion entre 1000 mi microcontrolador me arroja siempre cero como resultado no se donde este mal, les muestro el codigo:

Código: [Seleccionar]
float kh=0,tseg=0,v=110,i=1,fp=1,e=0;
int16 q=0.0,vb=0.0,va=0.0;
int rev=0,crev=0;

            lcd_gotoxy(1,1);
            e=3.6*kh*rev;
            e=e/tseg;
            v=v*i*fp;
            v=v/1000;
            lcd_gotoxy(1,1);
            printf(lcd_putc,"\fKwC%2.3fKi=%2.3f",e,v);
            delay_ms(4000);
            e=e/v;
            e=e*100;
            printf(lcd_putc,"\n Efi= %5.4f",e);
            output_low(pin_a1);
            output_low(pin_a2);
            output_low(pin_a3);
            crev=0;

Cuando muestro los resultados de :
  v=v/1000; y e=e/v; me manda a cero

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: [CCs] Divicion entre 1000
« Respuesta #1 en: 21 de Septiembre de 2012, 02:11:03 »
Prueba así, a ver qué tal:

Código: C
  1. float kh=0.0,tseg=0,v=110.0,i=1,fp=1,e=0;
  2. int16 q=0,vb=0,va=0;
  3. int rev=0,crev=0;
  4.  
  5.             lcd_gotoxy(1,1);
  6.             e=3.6*kh*(float)rev;
  7.             e=e/tseg;
  8.             v=v*i*fp;
  9.             v=v/1000.0;
  10.             lcd_gotoxy(1,1);
  11.             printf(lcd_putc,"\fKwC%2.3fKi=%2.3f",e,v);
  12.             delay_ms(4000);
  13.             e=e/v;
  14.             e=e*100;
  15.             printf(lcd_putc,"\n Efi= %5.4f",e);
  16.             output_low(pin_a1);
  17.             output_low(pin_a2);
  18.             output_low(pin_a3);
  19.             crev=0;


 

anything