Autor Tema: Duda en codigo PICC con IF  (Leído 1373 veces)

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

Desconectado Mikro-77

  • PIC12
  • **
  • Mensajes: 93
Duda en codigo PICC con IF
« en: 17 de Enero de 2015, 22:25:27 »
Hola buen dia o buenas noches, queria consultar por un codigo en picc que no alcanzo a entender ya que soy demaciado novato, el codigo es este

Código: [Seleccionar]

IF ((temperaturadecimal + 2 < restemp) | (temperaturadecimal - 2 > restemp))
        {             
         generate_tone(DO_NOTE[4],62.5);
         //delay_ms(250);
         //generate_tone(DO_NOTE[4],62.5);
         //printf(lcd_putc,"\f");
         lcd_gotoxy(1,3);
         printf(lcd_putc,"CONTROLE TEMPERATURA");           
         lcd_gotoxy(1,4);
         printf(lcd_putc,"CONTROLE TEMPERATURA");
         delay_ms(1000);
         lcd_gotoxy(1,3);
         printf(lcd_putc,"                ");           
         lcd_gotoxy(1,4);
         printf(lcd_putc,"                ");
        }
       
        else 
        output_low(pin_D0);


donde temperaturadecimal es del tipo float y restemp esta dentro de una funcion como int16 pero despues se declara como float, mi pregunta es si dentro del IF estaria todo correcto cosa que no creo...
// si quieres entender el universo, piensa en energia, frecuencia y vibración. Nikola Tesla.

// Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Duda en codigo PICC con IF
« Respuesta #1 en: 18 de Enero de 2015, 04:09:15 »
estaria bueno ver la otra parte del codigo. Digo donde se declara como int y como float.

Pero si podes compararlos

float > int

C termina casteando int a float y hace la comparacion.
http://www.tutorialspoint.com/cprogramming/c_type_casting.htm

http://stackoverflow.com/questions/759014/comparing-a-float-to-an-integer-in-c

Desconectado Mikro-77

  • PIC12
  • **
  • Mensajes: 93
Re: Duda en codigo PICC con IF
« Respuesta #2 en: 18 de Enero de 2015, 09:38:22 »
Hola gracias por responder, estará bien declarado?

Código: [Seleccionar]


#fuses nowdt,noput,nobrownout,nolvp/*,noprotect*/

int contadorconfiguracion;
float temperaturadecimal;
...
void sht_rd (float & temp, float & truehumid)
{
 int16 restemp, reshumid;
 float realhumid;
 restemp = 0; truehumid = 0;

 restemp = measuretemp();    //measure temp
 reshumid = measurehumid();  //measure RH
 calculate_data (restemp, reshumid, temp, realhumid, truehumid);  //calculate temp & RH
}


//***** Function to initialise SHT75 on power-up *****

void sht_init (void)
{
 comreset();    //reset SHT75
 delay_ms(20);  //delay for power-up
}

...

float restemp, truehumid;
 delay_ms(50);
 lcd_init();
 delay_ms(50);
 sht_init();

...

while(true)
 {
...
 }

// si quieres entender el universo, piensa en energia, frecuencia y vibración. Nikola Tesla.

// Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas.


 

anything