#include <16f88.h> //pic a utilizar
#fuses NOWDT,NOPROTECT,PUT,NOLVP //ordenes para el programador
#FUSES INTRC_IO
#use delay (clock=8000000) //Fosc=8Mhz
#byte port_A = 0x05
#byte port_B = 0x06
#define use_portb_lcd TRUE //definir portb lcd
#include<flex_lcd.c> //libreria manejo lcd
//long map(long x,long in_min,long in_max,long out_min,long out_max);
int16 POT; //VALOR POTENCIOMETRO
void main(void){
lcd_init(); //inicializa lcd
set_adc_channel(0);
setup_adc_ports(sAN0|VSS_VDD);
setup_adc(ADC_CLOCK_INTERNAL);
while(TRUE){
POT = read_adc();
//POT=map(POT,0,1023,1000,2000);
lcd_gotoxy(1,1);
lcd_putc(POT); //Esto no me funciona pues solo imprime ASCII
lcd_gotoxy(1,2);
//printf(lcd_putc, POT); //Esto tampoco va
//printf(lcd_putc, "%d", POT); //Ni esto
delay_ms(500);
}
}
printf(lcd_putc,"%lu",POT)//defino dicha variable
long int SERVO; //VALOR salida
//mapeo el valor de esa variable entre 1000 y 2000
SERVO=map(POT,0,255,1000,2000);
// y luego en el main tengo
printf(lcd_putc,"Gra=%03lu%c V=%04li",GRADOS,0xdf,SERVO);