Muy buenas. Quiero mostrar en un LCD de 4x20, en la primera linea, una barra que muestre el "valor" del conversor analogico digital, cuando este sea 0 no se mostrara nada, cuando sea 255 (maximo) que muestre la 1º linea llena de cuadrados rellenos (caracter FF del LCD compatible hitachi). Para convertir los 255 valores en 20, realizo una division a base de restas, 255/13 = 19,algo asi que resto 13 y muestro cuadrados hasta que el valor de "Barra" sea <0, testeando el flag C que se pondra a uno, salgo del bucle. El asunto es que no funciona, se enciende solamente el 1º caracter y en algunos valores concretos se apaga, los demas caracteres de la linea no se encienden nunca, y es algo que no logro entender. El lcd funciona perfectamente, es el algoritmo el que falla porque sin la division funciona bien (pero no se ajusta a los 20 caracteres). Uso el pic 16f876, por si sirve de algo. Es la unica forma de poder ajustar por software (que yo sepa), la otra opción sería con un divisor de tension mediante un potenciometro a la entrada del conversor, pero preferiría averiguar porque no funciona así.
Gracias y un saludo.
x_salta
movlw 0x0D ; W=13
subwf Barra,1 ; barra = barra - 13
btfsc STATUS,C
return
movlw 0xFF ; caracter
call LCD_DATOS ; Visualiza caracter
goto x_salta