Hola
Muchas por responder tan pronto, mi código con el adc está aquí
#define LCD_ENABLE_PIN PIN_D0
#define LCD_RS_PIN PIN_D1
#define LCD_RW_PIN PIN_D2
#fuses XT,NOWDT,NOPROTECT,PUT,NOLVP,NOBROWNOUT //ordenes para el programador
#use delay (clock=4000000) //Fosc=4Mhz
#include <kbd4x4.c> //libreria manejo keypad
#include <lcd420_2.c>
#include "stdio.h"
#include "math.h"
#include "stdlib.h"
int a,vi;
float ab,b;
signed char i;
boolean var=0;
#INT_AD
void AD_isr(void)
{
ab=read_ADC(ADC_READ_ONLY);
vi=TRUE;
Read_ADC(ADC_START_ONLY);
}
void main()
{
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
setup_psp(PSP_DISABLED);
setup_spi(SPI_SS_DISABLED);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_AD);
enable_interrupts(GLOBAL);
set_adc_channel(0);
vi=FALSE;
lcd_init();
read_ADC(ADC_START_ONLY);
a=kbd_getc();
while(TRUE)
{
if (vi==TRUE)
{
b=ab;
b=(b/1023)*500;
//do{a=kbd_getc();
// }while(a==0);
a=kbd_getc();
lcd_gotoxy(1,1);
lcd_putc("\fTemp. elegida\n");
lcd_gotoxy(1,3);
lcd_putc("Temp. actual:");
lcd_gotoxy(1,4);
printf(lcd_putc,"%1.2f",b);
lcd_gotoxy(10,4);
lcd_putc("grados");
lcd_gotoxy(1,2);
lcd_putc(a);
lcd_gotoxy(10,2);
lcd_putc("grados");
}
}
}
Mi problema es que no puedo hacer que ambos funcionen correctamente al mismo tiempo, ya que de momento quisiera observar dos digitos enteros leidos del teclado y el valor del adc, y que este se actualice tan pronto cambie. Ya desactive los pullups.