Buenas tardes les comparto mi problema, es un proyecto en donde se tienen dos sensores de temperatura ds1601, estos son leídos por el protocolo i2c, hasta acá no tengo ningún problema, este viene cuando debo de seleccionar que sensor quiero que se muestre en un lcd, este es elegido desde mi teclado por rs32, aquí es en donde no se deja meter en el ciclo, les comparto mi código y muchas gracias de antemano
#include<16f877a.h>
#fuses XT, NOWDT , NOLVP ,NOPROTECT
#use delay(clock=4Mhz)
#use RS232(BAUD=9600, XMIT=PIN_C6,RCV=PIN_C7 ,BITS=8, PARITY=N,STOP=1)
#use I2C(MASTER, SCL=PIN_C3,SDA=PIN_C4)
#include <lcd.c>
#INT_RDA
#use standard_io(b)
#use standard_io(a)
void main (void){
//configuracion
int TH,TL, TH1,TL1;
char ch;
unsigned int value;
int x=0, offset=10, x2=0;
set_tris_b(0x00);
set_tris_d(0xFF);
set_tris_a(0x01);
lcd_init();
printf("Selecciona un sensor \n\r");
while(1){
//codigo
getc();
ch=getc();
if((ch=='m'));{
i2c_start();
i2c_write(0x90);
i2c_write(0xee);
i2c_start();
i2c_write(0x90);
i2c_write(0xAA);
i2c_start();
i2c_write(0x91);
TH = i2c_read();
TL = i2c_read(0);
i2c_stop();
printf(lcd_putc,"\f\TH=%d\nTL=%d",TH,TL);
delay_ms(1000);
}
if((ch=='c'));{
i2c_start();
i2c_write(0x92);
i2c_write(0xee);
i2c_start();
i2c_write(0x92);
i2c_write(0xAA);
i2c_start();
i2c_write(0x93);
TH1 = i2c_read();
TL1 = i2c_read(0);
i2c_stop();
printf(lcd_putc,"\f\TH1=%d\nTL1=%d",TH1,TL1);
delay_ms(1000);
}
}
}