Bueno mi experiencia es limitada pero despues de hacer unas pruebas hice que el led encienda y hasta ahi todo bien! despues use de nuevo el codigo original con el que empeze la cuestion pero con el lcd sin conexion alguna y para mi sorpresa el circuito no hace nada de nada... ahi pongo el codigo aunque para mi el problema es la libreria del lcd! pero tambien probe con la libreria flex
#include <18f2455.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)
#USE standard_io(A)
#USE standard_io(b)
#include <lcd.c>
int16 distancia, tiempo;
#define trig pin_A1
#define echo pin_A0
void main()
{
lcd_init();
delay_ms(250);
output_high(PIN_A2);
delay_us(750);
output_low(PIN_A2);
printf(LCD_PUTC, "\f Iniciando");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando .");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando ..");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando ...");
delay_ms(500);
output_high(PIN_A2);
delay_ms(500);
output_low(PIN_A2);
delay_ms(500);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
while(true)
{
output_high(trig);
delay_us(20);
output_low(trig);
while(!input(echo))
{
}
set_timer1(0);
while(input(echo))
{
}
tiempo=get_timer1();
distancia=(tiempo*10)/(58.0);
printf(LCD_PUTC, "\fTiempo :%Lu \nDistancia = %Lu",tiempo,distancia);
delay_ms(500);
}
}
y para confirmar mi "corazonada" este codigo si funciono!
#include <18f2455.h>
#FUSES XT,NOWDT,NOPROTECT,PUT,NOBROWNOUT,NOLVP
#use delay(clock=4000000)
#USE standard_io(A)
#USE standard_io(b)
//#include <lcd.c>
int16 distancia, tiempo;
#define trig pin_A1
#define echo pin_A0
void main()
{
//lcd_init();
delay_ms(250);
output_high(PIN_A2);
delay_us(750);
output_low(PIN_A2);
/*printf(LCD_PUTC, "\f Iniciando");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando .");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando ..");
delay_ms(500);
printf(LCD_PUTC, "\f Iniciando ...");
delay_ms(500);*/
output_high(PIN_A2);
delay_ms(500);
output_low(PIN_A2);
delay_ms(500);
setup_timer_1(T1_INTERNAL|T1_DIV_BY_8);
while(true)
{
output_high(trig);
delay_us(20);
output_low(trig);
while(!input(echo))
{
}
set_timer1(0);
while(input(echo))
{
}
tiempo=get_timer1();
distancia=(tiempo*10)/(58.0);
//printf(LCD_PUTC, "\fTiempo :%Lu \nDistancia = %Lu",tiempo,distancia);
delay_ms(500);
}
}