TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: francpa en 16 de Enero de 2013, 16:44:09
-
hola a todos
mi consulta es la siguiente estoy haciendo un voltimetro con pic, pero no me muestra nada en el lcd el codigo no me salen errores pero en proteus me sale "attempted to read after writing a single nibble" he buscado soluciones pero ninguna me a servido adjunto el codigo en ccs
#include <16F876.h>
#device adc=10
#fuses xt,nowdt,noput,nobrownout,nolvp,noprotect
#use delay(clock=4000000)
#include "lcd.c"
#use standard_io (b)
#include <stdio.h>
void main()
{
lcd_init();
int16 q;
float p;
setup_adc_ports(AN0);
setup_adc(ADC_CLOCK_INTERNAL);
while (1) {
setup_adc (adc_clock_internal);
setup_adc_ports (all_analog);
set_adc_channel(0);
delay_us(20);
q = read_adc();
p = 5.0 * q / 1024.0;
printf(lcd_putc, "\fADC = %4ld", q);
printf(lcd_putc, "\nVoltage = %01.2fV", p);
delay_ms(1000);
}
}
el esquema en proteus es el siguiente
(http://img716.imageshack.us/img716/2012/97224150.png)
cualquier ayuda se los agradecere mucho
saludos
-
El mensaje de error indica que estás intentando escribir en el LCD mientras el mismo está ocupado procesando lo que le llegó con anterioridad.
Prueba de utilizar la librería flex_lcd, Aquí, en el foro, hay mucha info al respecto.
-
Aparte de lo que te ha dicho AngelGris, comprueba en la librería lcd.c que está configurada para usar el PORTB, que a veces lo está el PORTD.
-
ya soluciones mi problemas cambie la version de ccs y todo salio bien muchas gracias por sus respuestas muy amables
saludos